基于轮廓误差的Python OpenCV迭代

2024-10-06 12:34:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用OpenCV分析一张网络摄像头拍摄的照片。然后我裁剪了图像,并将其转换为黑白图像。然后我要找到图像中的所有轮廓,并确定最大的轮廓。在

我在Ubuntu操作系统的终端窗口中运行代码

以下是相关代码:

num_contours, contours = cvFindContours(contourimg, # num_contours - # of contours
                          cvCreateMemStorage(0),    # and contours are the actual contours
                          sizeof_CvContour)         # cvFindContours() destroys contourimg

max_size = float("-inf")
max_contour = None

for contour in contours.hrange():           # contours.hrange() returns a list of all contours
    print contour
    size = abs(cvContourArea(contour))      # calculates the area of the bounding rectangle
    if size > max_size:                             
        max_size = size                     # update max_size if larger contour found
        max_contour = contour               # update max_contour if larger contour found

当我运行代码时,我得到不同的错误。一种是分段错误,即退出python并返回到终端,但另一种是:

^{pr2}$

我发现这很奇怪,因为我有一个所有轮廓的print语句,它们都工作得很好,for循环在抛出这个错误之前会持续很长时间。我不知道这个轮廓和其他轮廓有什么不同。在

而且,有时(不经常)代码可以工作,所以错误不会每次都发生。在


Tags: ofthe代码图像终端sizeif错误