使用Python opencv库读入图片,但是显示读入的图片为None:
项目代码如下:
if file_path_name:
img = cv2.imread(file_path_name)
if img is None:
print(f"Failed to load image: {file_path_name}")
以上做法发现图片无法读出,打印出日志如下:
[ WARN:0@11.349] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('D:美丽心灵.jpg'): can't open/read file: check file path/integrity
经过搜索,opencv无法读入图片的可能问题如下:
1.图片文件损坏
2.图片格式不支持
但是这里看到日志,我看到Decoder脑子里灵光一闪,会不会是Opencv库不支持中文字符,查证如下:
OpenCV 库是一个计算机视觉库,它是使用 C++ 编写的,因此,它需要在代码中使用 C++ 字符串来表示文件路径。
C++ 字符串默认采用 ASCII 编码,不支持中文字符,因此,当你传入一个包含中文字符的路径时,它可能会出现编码错误或无法找到文件的问题。
经过验证,确实如此
def cv_imread(file_path):
cv_img = cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1)
return cv_img