【问题标题】:opencv read image assertion failedopencv 读取图像断言失败
【发布时间】:2018-01-06 01:08:40
【问题描述】:

我是 python 和 opencv 的新手。 试图读取图像。

这是我的代码:-

import cv2
import numpy
img = cv2.imread('Test1.jpg',0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

这是生成的错误:-

OpenCV 错误:imshow 中的断言失败 (size.width>0 && size.height>0),文件 /opt/concourse/worker/volumes/live/68762549-a7cd-401a-4fc4-6547354af396/volume/opencv_1512680491081/工作/模块/highgui/src/window.cpp, 第 331 行 Traceback(最近一次调用最后一次):文件 “/Users/vinayak/PycharmProjects/Python_test1/test_img.py”,第 4 行,在 cv2.imshow('image',img) cv2.error: /opt/concourse/worker/volumes/live/68762549-a7cd-401a-4fc4-6547354af396/volume/opencv_1512680491081/work/modules/highgui/src/window.cpp :331: 错误:(-215) size.width>0 && size.height>0 in function imshow

请帮我找出故障。提前致谢!

【问题讨论】:

标签: python image opencv assertion


【解决方案1】:

这个错误意味着你没有加载图像并且 img 是空的。

在 cv2 的 imread 中存在一个已知错误。您可以尝试用这部分替换 imread 调用:

import matplotlib.pyplot as plt
img = plt.imread('Test1.jpg')

matplotlib 在 cv2 上没有同样的错误。

【讨论】:

    【解决方案2】:

    代码是正确的,这是在 Python 中加载和显示图像 unsing OpenCV 的正确方法,您传递的附加参数 (0) 表示您将图像加载为灰度并且是枚举 cv 的数值.IMREAD_GRAYSCALE

    opencv load image tutorial

    link to enums

    为了完整起见,这里是我测试的基本代码

        import cv2 as cv
    
        img = cv.imread('C:\\path\\to\\my\\Image\\image.bmp',0)
        cv.imshow('image',img)
        cv.waitKey(0)
        cv.destroyAllWindows()
    

    因此,问题很可能与您传递给 cv.imread 函数的路径有关

    • 您确定您的图像与您在同一个工作目录中吗 使用?(我敢打赌不是...)
    • 您是否尝试使用完整的绝对路径更改您提供的相对路径 路径?

    【讨论】:

      猜你喜欢
      • 2014-02-10
      • 1970-01-01
      • 2012-11-26
      • 2014-11-24
      • 2014-05-28
      • 2020-12-31
      • 2015-09-12
      • 2015-04-25
      • 1970-01-01
      相关资源
      最近更新 更多