0

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

このエラーを回避するにはどうすればよいですか?

4

1 に答える 1

1

問題は、cv2.drawContours (および一般に、Python のすべての opencv の「描画」関数) の出力が None に等しいことです。この方法を試してください:

cv2.drawContours(a, contours, -1, (128, 255, 0), 1)
cv2.imshow('abs', a)
cv2.waitKey(0) 
于 2017-01-03T08:25:42.447 に答える