1
原因分析:这是由于在OpenCV-Python包中,imshow函数的窗口标题是gbk编码,而Python3默认UTF-8编码。因而窗口标题包含中文时,会显示乱码。
解决这个问题,最直接就是从标题的编码入手:
string.encode("gbk").decode(errors="ignore")
完整代码:
import numpy as np
import cv2 as cv
def zh_ch(string):
return string.encode("gbk").decode(errors="ignore")
img = np.zeros((512,512,3), np.uint8)
cv.imshow(zh_ch('图片'),img)
cv.waitKey(0)
cv.destroyWindow('image')
但转换有风险,不一定百分之百正确,最好还是使用英文。
2
3
我使用了这句代码后,发现有的汉字无法显示,直接被省略掉了(errors=“ignore”)
参考文章1:opencv.imshow窗口的中文名称显示乱码