关于cv2.read返或None的解决方法(Google上没有看到过的方法)

关于cv2.read返或None的解决方法

Python程序运行试遇到cv2.read(‘test.jpg’)返回None的问题 ,在Google上找了很多关于该问题的解决方法,一般主要分为四种情况:
1.图片的路径不正确,例如路径中的“\”问题(多数情况);
参考回答:https://www.pyimagesearch.com/2016/12/26/opencv-resolving-nonetype-errors/
2.图片损坏,因此opencv不能正确阅读;
3.路径或文件名中有中文字符;
参考回答:https://blog.csdn.net/scut_salmon/article/details/78878533
4.opencv库安装的问题。
参考回答:https://ziyubiti.github.io/2016/06/15/imreaderror/

但是我所遇到的情况,上述方法均不适用。
首先,图片的路径正确;
其次,该图片可以用PIL中Image.open(‘test.jpg’) 打开;
最后,opencv的库也没有什么问题。

后来,灵光一闪尝试了:

with Image.open('test.jpg') as im:
    rgb_im = im.convert('RGB')        
    rgb_im.save('test.jpg') 
cv2.read('test.jpg')

cv2.read(‘test.jpg’)可以成功运行,但我还没有仔细深究其中的原因,如果有大神知道可以留言解答一下。
这是我第一次写博客,因为这个问题在Google上并没有找到合适我的解决方法,所以想将自己的方法分享出来,给遇到相似问题的朋友一个思考方向。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cv2.read函数默认读取的通道顺序是BGR而不是RGB。如果你想读取RGB格式的图像,你可以使用cv2.imread函数读取图像后,再使用cv2.cvtColor函数将图像从BGR转换为RGB格式。例如,你可以按照以下步骤进行操作: 1. 使用cv2.imread函数读取图像,得到一个BGR格式的图像。 2. 使用cv2.cvtColor函数将图像从BGR转换为RGB格式。 3. 使用cv2.imshow函数显示转换后的RGB图像。 以下是一个示例代码: ```python import cv2 # 读取图像 im = cv2.imread('1_1.png') # 将图像从BGR转换为RGB im_rgb = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) # 显示转换后的RGB图像 cv2.imshow('RGB Image', im_rgb) cv2.waitKey() cv2.destroyAllWindows() ``` 这样,你就可以使用cv2.read函数读取RGB格式的图像了。 #### 引用[.reference_title] - *1* *3* [RGB? BGR? Image. open VS cv2.imread](https://blog.csdn.net/qq_45181888/article/details/129945892)[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^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [cv2 和 PIL.Image 操作 RGB 和 BGR](https://blog.csdn.net/Le___Le/article/details/118320231)[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^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值