CV2.imread()函数问题

4 篇文章 0 订阅
2 篇文章 0 订阅

昨天要处理一批图片,以前一直用matlab,昨天就想,反正在学python,就用python练练手,不练不知道,一练吓一跳!

要从指定文件夹批量读取图片,然后进行开运算,代码如下

import cv2
import os
import numpy as np
kernel = np.ones((6,6),np.uint8)
path="D:/Data/ship_data/223"
file_dir=os.listdir(path)
for img in file_dir:
    imgread = cv2.imread(img, 0)
    opening = cv2.morphologyEx(imgread, cv2.MORPH_OPEN, kernel)

报错如下

Traceback (most recent call last):
  File "C:/Users/JoyingLiu/PycharmProjects/model/Open_operation.py", line 15, in <module>
    opening = cv2.morphologyEx(imgread, cv2.MORPH_OPEN, kernel)
cv2.error: OpenCV(3.4.3) C:\bld\opencv_1539051587419\work\modules\core\src\matrix.cpp:756: error: (-215:Assertion failed) dims <= 2 && step[0] > 0 in function 'cv::Mat::locateROI'

网上找了半天,都是说这个错误是路径问题,我检查了好几遍,我的路径是对的,而且我也没有用斜杠\,我用的反斜杠/,我也试了两个斜杠\\,但是问题没有解决,我打印了文件列表,也是对的。我就奇了怪了。

后面想到之前读图片都是一张单独读的,单独的时候都是写好路径的。

所以问题就出在这了,CV2.imread()函数的文件路径要是具体的路径。这样写不对。必须把路径写完整。

之后用golb,就没有报错了

import cv2
import os
import numpy as np
kernel = np.ones((6,6),np.uint8)
import glob
kernel = np.ones((6,6),np.uint8)
for img in glob.glob("D:/Data/ship_data/223/*.png"):
    imgread = cv2.imread(img,0)
    opening = cv2.morphologyEx(imgread, cv2.MORPH_OPEN, kernel)

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值