目录
概述
使用OpenCV 库函数cv2.imread()读取图像文件时终端报错“can't open/read file: check file path/integrity”,发现原因为图像文件的中文命名导致;
正文
问题描述
使用OpenCV 库函数cv2.imread()读取图像文件时终端报错“can't open/read file: check file path/integrity”,代码如下:
# 加载图像
image = cv2.imread(r'G:\learning\python\code\龙猫.jpg')
终端报错如下 :
[ WARN:0@0.023] global loadsave.cpp:241 cv::findDecoder imread_('G:\learning\python\code\榫欑尗.jpg'): can't open/read file: check file path/integrity
Error: 图像加载失败!
尝试解决方案
以为是图像文件路径格式有问题,改了路径如下:
# 加载图像
image = cv2.imread('G:\\learning\\python\\code\\龙猫.jpg')
还是一样的报错;
将文件复制到代码路径下,使用相对路径,也是一样的报错:
# 加载图像
image = cv2.imread('龙猫.jpg')
最终解决方案
观察到终端报错中文字为乱码,觉得有可能是中文名称的问题,代码改为如下:
# 加载图像
image = cv2.imread(r'G:\learning\python\code\LM.jpg')
问题解决,输出处理后的图片如下:
源码
import cv2
import numpy as np
# 加载图像
image = cv2.imread(r'G:\learning\python\code\LM.jpg')
if image is None:
print("Error: 图像加载失败!")
else:
# 从 BGR 转换到 RGB
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 从 BGR 转换到 GRAY
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 从 BGR 转换到 HSV
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 从 BGR 转换到 HLS
hls_image = cv2.cvtColor(image, cv2.COLOR_BGR2HLS)
# 从 BGR 转换到 YUV
yuv_image = cv2.cvtColor(image, cv2.COLOR_BGR2YUV)
# 从 BGR 转换到 YCrCb
ycrcb_image = cv2.cvtColor(image, cv2.COLOR_BGR2YCrCb)
# 从 BGR 转换到 Lab
lab_image = cv2.cvtColor(image, cv2.COLOR_BGR2LAB)
# 显示原图和转换后的图像
cv2.imshow('Original Image', image)
cv2.imshow('RGB Image', rgb_image)
cv2.imshow('Gray Image', gray_image)
cv2.imshow('HSV Image', hsv_image)
cv2.imshow('HLS Image', hls_image)
cv2.imshow('YUV Image', yuv_image)
cv2.imshow('YCrCb Image', ycrcb_image)
cv2.imshow('Lab Image', lab_image)
cv2.waitKey(0)
cv2.destroyAllWindows()