python opencv imshow标题中文乱码怎么解决

img

cv.imshow('原图img', img)
请问标题中文乱码怎么解决呢!

以下回答参考GPT并且由Bony-整理:
在Python中使用OpenCV库的imshow函数显示图像时,标题中文乱码问题通常是由于字符编码不一致导致的。为了解决这个问题,您可以尝试以下两种方法:


设置matplotlib的默认字体
OpenCV库可以使用matplotlib库来绘制图像。因此,您可以通过设置matplotlib库的默认字体来解决中文乱码问题。您可以在代码中添加以下语句:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'  # 设置字体为中文黑体


这会将字体设置为中文黑体,可以解决中文乱码问题。

使用cv2.putText函数添加中文标题
另一种解决中文乱码问题的方法是使用cv2.putText函数手动添加标题。您可以在代码中添加以下语句:
import cv2
img = cv2.imread('image.jpg')
cv2.putText(img, '中文标题', (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

这会在图像上添加一个中文标题,并可以解决中文乱码问题。

希望这些方法可以帮助您解决OpenCV imshow标题中文乱码的问题。

希望能对您有所帮助


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')