python配置opencv环境后,读取图片,报错:can‘t open/read file: check file path/integrity

运行出错代码:

import cv2
import numpy as np

image = cv2.imread('C:/Pictures/桌面背景图片切换/wallhaven-6oq1k7.jpg', cv2.IMREAD_COLOR)
cv2.imshow("test", image)
cv2.waitKey(0)

报错内容:

[ WARN:0@0.007] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('C:/Pictures/桌面背景图片切换/wallhaven-6oq1k7.jpg'): **can't open/read file: check file path/integrity**
Traceback (most recent call last):
  File "D:/Code/DeepLearning/test/main.py", line 13, in <module>
    cv2.imshow("test", image)
cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:967: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'


Process finished with exit code 1

报错原因:路径中出现中文字符
解决办法:
1.修改路径
2.修改代码,修改后代码如下:

import cv2
import numpy as np
# 读取图像,解决imread不能读取中文路径的问题
def cv_imread(file_path):
    cv_img = cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), -1)
    # im decode读取的是rgb,如果后续需要opencv处理的话,需要转换成bgr,转换后图片颜色会变化
    cv_img = cv2.cvtColor(cv_img, cv2.COLOR_RGB2BGR)
    return cv_img


if __name__ == '__main__':
    path = 'C:/Users/18724/Pictures/桌面背景图片切换/wallhaven-6oq1k7.jpg'
    img = cv_imread(path)
    cv2.namedWindow("test", cv2.WINDOW_AUTOSIZE)
    cv2.imshow("test", img)
    cv2.waitKey(0)
    # 保存到当前运行目录下
    cv2.imencode('.jpg', img)[1].tofile('凝光.jpg')

参考链接:
1.https://blog.csdn.net/liuqinshouss/article/details/78696032
2.https://www.zhihu.com/question/47184512
3.https://www.zhihu.com/question/67157462/answer/251754530

  • 33
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
根据引用和引用的内容,问题中提到的错误信息是由于文件路径错误或文件损坏导致的。cv::findDecoder imread_无法打开或读取文件时会报错。可能的原因有两种情况:1)文件路径错误,可能是文件名或文件夹路径中有中文字符导致的。OpenCV库使用C字符串表示文件路径,不支持中文字符。2)文件损坏或格式不受支持。 为了解决这个问题,可以尝试以下方法: 1)检查文件路径是否正确,确保文件路径中不包含中文字符,并且文件存在于指定路径中。 2)检查文件是否损坏或格式是否受支持。可以尝试打开其他图片文件,检查是否能够正常读取。 如果文件路径中包含中文字符,可以尝试将文件路径转换为英文字符或使用其他编码方式表示路径。例如,可以通过修改代码来使用C++标准字符串来表示文件路径,或使用特定的编码方式来解决中文路径的问题。 另外,还可以尝试使用小工具SmallCV来读取图片文件,该工具支持轻量级的Mat和imread()函数。通过将图片文件路径传递给cv_imread()函数,可以尝试读取图片并返回Mat对象。 请注意,以上方法只是一些常见的解决方案,实际解决问题可能需要根据具体情况进行调试和实验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [关于出现global loadsave.cpp:244 cv::findDecoder imread_...can‘t open/read file: check file path/...](https://blog.csdn.net/sjjg129/article/details/130092417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Python:loadsave.cpp (239) cv::findDecoder imread_(‘‘)can‘t open/read file: check file path/...](https://blog.csdn.net/qjyws/article/details/129939694)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [轻量级Mat和imread()/ imwrite()/ imshow()-C/C++开发](https://download.csdn.net/download/weixin_42165980/19108181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值