用cv2.imread()加载图像,中文路径导致无法正确加载图像的解决方式:

Image =cv2.imread(filename)

出现警告:

[ WARN:0@6.964] global loadsave.cpp:241 cv::findDecoder imread_('data/images/train\渝U00792D.jpg'): can't open/read file: check file path/integrity

        这个警告信息表明 OpenCV 在尝试使用 cv2.imdecode() 函数加载图像时遇到了问题,无法打开或读取指定的图像文件,建议检查文件路径和文件的完整性。

常见原因包括:

  1. 文件路径错误:确保路径字符串正确拼写。

  2. 文件不存在:指定的文件在指定路径下不存在。这可能是由于文件被删除、移动或者路径错误导致的。

  3. 路径含有特殊字符:路径中如果包含特殊字符或者非英文字符,可能会导致程序无法正确解析路径。

注意:这里出现警告的原因是路径包含中文字符,所以只针对该原因提出解决方式。

解决方式:

修改为如下代码:

Image = cv2.imdecode(np.fromfile(filename, dtype=np.uint8),-1)

在 OpenCV 中,cv2.imdecode() 函数用于解码从文件或者网络流中读取的图像数据。当你调用这个函数时,你需要提供两个参数:

1. 第一个参数是一个NumPy数组,包含了图像的原始字节数据。这通常是通过np.fromfile(filename, dtype=np.uint8)得到的,其中 filename是图像文件的路径,dtype=np.uint8指定了读取的数据类型为无符号8位整型,这是大多数图像文件(如JPEG, PNG等)中像素值的常见存储方式。

2. 第二个参数是一个标志,用于指定如何读取图像。在实际应用中,常见的解码标志包括:

  • cv2.IMREAD_COLOR(等同于1):加载彩色图像,忽略任何透明度。(默认标志)
  • cv2.IMREAD_GRAYSCALE(等同于0):以灰度模式加载图像。
  • cv2.IMREAD_UNCHANGED(等同于-1):保持图像原有的通道深度和通道顺序。(包括 alpha 通道(如果有的话))
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值