【问题标题】:cv2.imread does not recognize pathcv2.imread 无法识别路径
【发布时间】:2022-02-22 17:00:59
【问题描述】:

我正在尝试使用 cv2.imread 加载多个图像,并且我还在 imageIDname.txt 中指定了完整路径(如下所示):

                          'C:/yolov4/coco/images/val2017/000000397133.jpg'
                          'C:/yolov4/coco/images/val2017/000000037777.jpg'
                          'C:/yolov4/coco/images/val2017/000000252219.jpg'
                           ...

但似乎 cv2.imread 无法打开它们。 这是我的代码

b=open('C:/yolov4/imageIDname.txt','r')
for item in b.readlines():
    print(item)
    print(type(item))
    
    original_image = cv2.imread(item)
    original_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2RGB) 

和错误日志

'C:/yolov4/coco/images/val2017/000000397133.jpg'

<class 'str'>
Traceback (most recent call last):
 File "c:/yolov4/detect.py", line 120, in <module>
   app.run(main)
 File "C:\Users\kaelt\AppData\Local\Programs\Python\Python37\lib\site-packages\absl\app.py", line 303, in run
   _run_main(main, args)
 File "C:\Users\kaelt\AppData\Local\Programs\Python\Python37\lib\site-packages\absl\app.py", line 251, in _run_main
   sys.exit(main(argv))
 File "c:/yolov4/detect.py", line 44, in main
   original_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(4.4.0) C:\Users\kaelt\Downloads\opencv-4.4.0\opencv-4.4.0\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' 

但是,当我运行 cv2.imread('C:/yolov4/coco/images/val2017/000000397133.jpg') 时,一切都很好。 好吧,既然我要运行 5000 张图像,最好不用一张一张地运行。 感谢您的帮助!

【问题讨论】:

  • cv2.imread('C:/yolov4/coco/images/val2017/000000397133.jpg', cv2.COLOR_BGR2RGB) 运行正常吗?您使用单个文件路径的示例不包括颜色,我想知道这是否相关
  • 我很确定使用单个文件路径可以正常运行。这就是为什么我对此感到非常沮丧。如果您需要证据,我可以在这种情况下添加一个print(),但我认为没有必要
  • 由于print 最终打印出单引号,这意味着路径字符串包含它们,因此路径无效。你基本上是在做类似cv2.imread("'C:/yolov4/coco/images/val2017/000000397133.jpg'")的事情。
  • 我会在运行单个文件路径[[[124 128 77] [120 126 64] [104 111 57] ... [ 11 12 14] [ 9 10 12] [ 12 13 15]] [[115 131 68] [120 136 73] [ 94 109 52] ... [ 13 13 13] [ 10 10 10] [ 11 11 9]] [[115 126 68] [117 131 69] [ 89 104 45] ... [ 8 6 7] [ 43 42 40] [ 61 60 56]] ... [[139 104 74] [142 107 79] [139 105 77] ... [ 50 33 25] [ 50 33 25] [ 44 30 21]] [[140 105 73] ... [ 47 29 19] [ 50 32 22] [ 49 32 22]]]时显示证据@

标签: python opencv


【解决方案1】:
import glob
import cv2

images = [cv2.imread(file) for file in glob.glob(r'C:\yolov4\coco\images\val2017\*.jpg')]

for img in images:
    original_image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 

【讨论】:

    猜你喜欢
    • 2018-05-25
    • 2016-09-11
    • 2015-04-19
    • 1970-01-01
    • 2019-07-20
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    相关资源
    最近更新 更多