python - Python显示用于查找轮廓的OpenCV断言错误

标签 python opencv opencv-contour opencv-drawcontour

我试图使用Python OpenCV在图像中绘制轮廓。我的代码如下:

import numpy as np
import cv2
import Image
a = cv2.imread('train.jpg')
b = cv2.cvtColor(a, cv2.COLOR_BGR2GRAY)
ret, c = cv2.threshold(b, 127, 255, cv2.THRESH_BINARY)
contours, h = cv2.findContours(c, 1, 2) 
d = cv2.drawContours(a, contours, -1, (128, 255, 0), 1)
cv2.imshow('abs', d)
cv2.waitKey(0)

编译此代码时出现错误。错误如下:
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /home/travis/miniconda/conda-bld/work/opencv-2.4.11/modules/highgui/src/window.cpp, line 261
Traceback (most recent call last):
  File "shape.py", line 9, in <module>
    cv2.imshow('abs',d)
cv2.error: /home/travis/miniconda/conda-bld/work/opencv-2.4.11/modules/highgui/src/window.cpp:261: error: (-215) size.width>0 && size.height>0 in function imshow

如何避免此错误?

最佳答案

问题应该是cv2.drawContours(以及python中的所有opencv“绘图”函数)的输出等于“无”。尝试这种方式:

cv2.drawContours(a, contours, -1, (128, 255, 0), 1)
cv2.imshow('abs', a)
cv2.waitKey(0) 

关于python - Python显示用于查找轮廓的OpenCV断言错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41438251/

相关文章:

python - 如何在Python中创建三角形内核?

python - 如何在 AddDimension 中正确设置 SetGlobalSpanCostCoefficient 和容量参数?

python - 如何调整GraphWin窗口大小?

android - AndroidTest 拒绝访问外部存储的权限

android - 如何使用opencv在android中设置边界矩形周围的感兴趣区域

python - 如何读取cv2.findContours的结果?

python - 属性错误: 'NodeList' object has no attribute 'getElementsByTagName'

c++ - 使用 OpenCV 的对象跟踪脚本中的慢速视频

opencv - 直方图比较为 "neuronal-networks for the poor"

python - 如何在opencv(阈值)中改变轮廓形成的区域