【python】[Opencv库]【cv2包】cv2.imread() 读取图片失败解决方法

当使用cv2.imread(file)读取图片一直读取不了就要看看file路径是否存在中文了,今天写了的代码,用cv2.imread()读取图片路径一直报错,试了很多种方法,结果是中文出错了。

使用Opencv库倒入cv2包:import cv2
解决方法1:把文件路径里的文件名里带中文的全改为英文

#只使用前三个参数cv2.warpAffine(img,M,(rows,cols)),出现黑边
import  cv2
img=cv2.imread(r'C:\Users\zhu18\Pictures\CameraRoll\Progress\face1.jpg')
import numpy as np
M=np.float32([[1,0,25],[0,1,50]])
shifted_img=cv2.warpAffine(img,M,(img.shape[1],img.shape[0]))
cv2.imshow('Shifted',shifted_img)
print(type(img))

执行结果图:
【python】[Opencv库]【cv2包】cv2.imread() 读取图片失败解决方法_第1张图片

#只使用前三个参数cv2.warpAffine(img,M,(rows,cols)),出现黑边
import  cv2
img=cv2.imread(r'C:\Users\zhu18\Pictures\Camera Roll\Progress\示例2.jpg')
import numpy as np
M=np.float32([[1,0,25],[0,1,50]])
shifted_img=cv2.warpAffine(img,M,(img.shape[1],img.shape[0]))
cv2.imshow('Shifted',shifted_img)
print(type(img))

报错,错误提示:
【python】[Opencv库]【cv2包】cv2.imread() 读取图片失败解决方法_第2张图片
读取图片时发生异常,一切都是中文路径惹的祸,编程还是一切以英文为主比较好,免得出错。解决方法2如下:

import  cv2
import numpy as np
#img=cv2.imread(r'C:\Users\zhu18\Pictures\Camera Roll\Progress\示例2.jpg')
img = cv2.imdecode(np.fromfile(r'C:\Users\zhu18\Pictures\Camera Roll\Progress\示例2.jpg', dtype=np.uint8), 1)
M=np.float32([[1,0,25],[0,1,50]])
shifted_img=cv2.warpAffine(img,M,(img.shape[1],img.shape[0]))
cv2.imshow('Shifted',shifted_img)
print(type(img))

完美运行,图片成功显示,借助于numpy来读入数据,然后cv2.imdecode()把数据转换(解码)成图像。

你可能感兴趣的:(python,python,opencv)