cv2解决opencv.puttext函数不能显示中文问题

 人参与 | 时间:2025-06-24 13:16:37

人脸识别时,执行以下代码󿀌使用cv2.putText()函数标注人脸名称󿀌但是中文总是显示出来的??,试了很多方法还是失败了,询问ai󿀌它说使用ecode函数将name转换为‘utf-*#xff0c;但是报错说puttext需要输入一个字符串󿀌所以我把puttext函数中的name改为str(name),代码如下󿀌中文可以正常显示。

中文显示乱码的源代码:

for (top, right, bottom, left), name in zip(face_locations, face_names):        if not name:            continue        # 绘制面部区域框        cv2.rectangle(frame,(left,top),(right,bottom), (0, 0, 255), 2)        # 在面部区域下绘制人名        cv2.rectangle(frame, (left, bottom - 25),                      (right, bottom), (0, 0, 255), cv2.FILLED)        font = cv2.FONT_HERSHEY_DUPLEX        cv2.putText(frame,name, (left + 6, bottom - 6), font, 1, (255, 255, 255), 1)。

中文正常显示的代码:

for (top, right, bottom, left), name in zip(face_locations, face_names):        if not name:            continue        # 绘制面部区域框        cv2.rectangle(frame,(left,top),(right,bottom), (0, 0, 255), 2)        # 在面部区域下绘制人名        cv2.rectangle(frame, (left, bottom - 25),                      (right, bottom), (0, 0, 255), cv2.FILLED)        font = cv2.FONT_HERSHEY_DUPLEX        cv2.putText(frame,str(name), (left + 6, bottom - 6), font, 1, (255, 255, 255), 1)。

注:face_names是中文列表,例如:face_names=['人名1', '人名2', '人名3']。

注:face_names是中文列表,例如:face_names=['人名1', '人名2', '人名3']。

但name本身的类型是str,str(name)之后还是str:。

虽然解决了中文显示乱码的问题,但是我没有找到࿰的原理c;希望懂的人能回答,感恩!!!也希望对大家有所帮助。 顶: 11踩: 61928