【问题标题】:opencv, python and RaspberryPiopencv、python 和树莓派
【发布时间】:2015-10-14 13:19:49
【问题描述】:

我在Raspberry-Pi模块上实现了这段代码,从文件夹中读取png图像并将其转换为灰色,代码如下:

x = glob.glob("/home/pi/pngimages/ss*png")

for imagefile in x[0300:0302]:

 img = cv2.imread(imagefile)

 gray = cvt.cvtColor(img,cv2.COLOR_BGR2GRAY)

但我收到以下错误:

OpenCV 错误:cvtColor 中的断言失败 (scn == 3 || scn == 4),文件 /home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp,第 3205 行 Traceback(大多数最近通话最后):灰色文件= cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)cv2.error:/home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp:3739:错误:(- 215) scn == 3 ||函数 cvtColor 中的 scn == 4

【问题讨论】:

  • 您是否尝试在imread 之前打印imagefile?您的 glob 调用可能会返回 sstextpng 形式的文件。可能最好让它ss*.png 并重新测试。
  • x = glob.glob("/home/pi/png_images/ss*.png") for imagefile in x[0300:0302]:...这是我使用的,但我可以观察 cvt.cvtColor() 函数是否适用于一个图像,但是当循环运行第二个图像时,我得到了那个错误..?

标签: python opencv raspberry-pi


【解决方案1】:

如果图像是None,通常会发生此断言。首先尝试检查图像是否被正确读取。

x = glob.glob("/home/pi/pngimages/ss*png")

for imagefile in x[0300:0302]:
    img = cv2.imread(imagefile)
    # You can do a print img.shape here if you want to see what's going on
    # If it returns NULL, something's wrong with your image or the path or something else
    if img:
        gray = cvt.cvtColor(img,cv2.COLOR_BGR2GRAY)

如果您发现它没有执行任何操作,因为 img 是 None,请检查您的目录并检查它是否正在寻找正确的图像

也请看这里:Python-OpenCV cv2 OpenCV Error: Assertion failed (scn == 3 || scn == 4) in unknown function, file ..\..\..\modules\imgproc\src\color.cpp

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2017-06-11
    • 2016-05-15
    • 2014-03-20
    • 2019-12-04
    • 2014-09-20
    相关资源
    最近更新 更多