报错信息:
[ WARN:0@1.135] global loadsave.cpp:248 cv::findDecoder imread_('微信图片_2024.jpg'): can't open/read file: check file path/integrity
Traceback (most recent call last):
File "D:\file_code\PycharmProjects\Paralysis\DistanceGui.py", line 14, in <module>
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:196: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
原因: opencv不接受non-ascii的路径。
解决办法1:把文件的中文字符删去。
如将"微信图片—2024"改为"2024"。就不会报错。
更改前:image = cv2.imread("微信图片_2024.jpg")
更改后:image = cv2.imread("2024.jpg") 当然图片名要跟着改。
解决办法2:先用先用np.fromfile()读取为np.uint8格式,再使用cv2.imdecode()解码。
image = cv2.imdecode(np.fromfile(image_path,dtype=np.uint8),-1)
如:更改前:
image = cv2.imread("微信图片_2024.jpg") 更改后: image = cv2.imdecode(np.fromfile("微信图片_2024.jpg",dtype=np.uint8),-1)