我只是想了解轮廓的含义以及当我们使用 OpenCV 中的 cv.FindContours 函数创建轮廓时存储的值是什么(我使用的是 OpenCV 2.3.1 和 Python)。我使用以下简单图像进行测试:
轮廓查找后,我在 ipython 中应用了以下命令:
In [8]: contour
Out[8]: <cv2.cv.cvseq at 0x90a31a0>
In [10]: list(contour)
Out[10]:
[(256, 190),
(255, 191),
(112, 191),
(255, 191),
(256, 190),
(257, 191),
(257, 190)]
第一个命令说,轮廓是一个 cvSeq 对象。
我在图像上标记了这些点,这给了我以下图像(红色标记的圆圈是点):
我不明白这是什么意思。
所以我的问题是第二个命令(即列表(轮廓))结果中的值表示什么?
编辑:以下是我使用的代码。
import cv
img = cv.LoadImage('simple.jpeg')
imgg = cv.LoadImage('simple.jpeg',cv.CV_LOAD_IMAGE_GRAYSCALE)
storage = cv.CreateMemStorage(0)
contours = cv.FindContours(imgg,storage,cv.CV_RETR_TREE,cv.CV_CHAIN_APPROX_SIMPLE,(0,0))
print list(contours)
for i in list(contours):
cv.Circle(img,i,5,(0,0,255),1)
cv.ShowImage('img',img)
cv.WaitKey(0)