python cv2.imread 读取含中文名称的图片
用python 处理图片时,常会通过cv2.imread() 来读取图片到变量。但是,当图片名称中含有中文时,会读取不到图片,变量的值不是图片而是“None”,后面当然也就无法正常使用变量去做进一步处理。
解决的思路就是先用其他支持中文名称图片的函数,把图片数据导入到内存中,然后通过opencv从内存读入图片,这样就能读入中文名称的图片。
def cv2imgread(filename, mode=cv2.IMREAD_UNCHANGED):
# cv2.IMREAD_UNCHANGED 参数可以用-1代替
#cv2.IMREAD_GRAYSCALE 以灰度模式读入图像,可用0代替
#cv2.IMREAD_COLOR 读入彩色图像,可用1代替;
np_data = np.fromfile(filename, dtype=np.uint8) # 先用numpy把图片文件存入变量np_data,把图片数据看做是纯字节数据
img = cv2.imdecode(np_data, mode) #从内存数据读入图片
return img
冀公网安备 13010402001886号