cv2.contourArea无法正常工作

时间:2018-01-27 14:45:40

标签: python image opencv contour area

我想做的是在夜间地球照片中找到大光污染区域。我将源照片转换为灰度,然后转换为具有阈值的二进制照片。 cv2.findcontours工作正常,但当我试图摆脱小轮廓时,它只删除其中的一部分。

Source image

"."

正如您所看到的,仍有许多小型轻度污染区域的轮廓。我该怎样摆脱它们?

All contours comparison

Big contours comparison

Source image all contours Source image big contours

1 个答案:

答案 0 :(得分:0)

我认为问题出在for的pop中:当你弹出轮廓时,你正在跳过下一个轮廓。

例如,如果你弹出轮廓号10,那么下一个countour将变为10号,但你会跳过它,因为在下一次迭代中你会看到轮廓11。

我不是python专家(我不知道如何在for中使用这两个变量)但是你可以尝试在pop之后做一个counter = counter-1。另一种选择是向后迭代列表(从最后一个元素开始并在第一个元素完成)