opencv读取图像断言失败

时间:2018-01-06 01:08:41

标签: python image opencv assertion

我是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/work/modules/highgui/src/window.cpp,   第331行追溯(最近一次调用最后一次):文件   " /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&&函数imshow中的size.height> 0

请帮我识别故障。提前谢谢!

2 个答案:

答案 0 :(得分:0)

此错误表示您未加载图像且img为空。

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

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

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

答案 1 :(得分:0)

代码正确,这是在Python中使用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函数的路径有关

  • 确定您的图片与您使用的图片相同吗? 使用?(我打赌不是...)
  • 您是否尝试使用完整的绝对值来更改相对路径 路径?