我是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
请帮我识别故障。提前谢谢!
答案 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
为了完整起见,这里是我测试过的基本代码
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函数的路径有关