1

我需要一些关于opencv(python)中的blob的帮助。

事情是这样的:

我已经编写了可以正常工作的预处理函数,它们隔离感兴趣的区域并返回一个阈值图像,其中这些区域是白色的,其余的是黑色的。问题是,我只对白色区域感兴趣,但无论我做什么,我都会不断地将背景变成一个斑点。我无法按大小过滤,因为我不知道对象有多远。

有没有办法只处理白色斑点?

这是我现在所拥有的要点:

mask = cv.cvCreateImage(frame_size,8,1)
cvSet(mask,1)
.
.
.
blob_a_matches = CBlobResult(blob_a,mask,100, True)
blob_a_matches.filter_blobs(10, 1000)
for i in range(blob_a_matches.GetNumBlobs()):
    numbered_blob = blob_a_matches.GetBlob(i)
    area = numbered_blob.Area()
    .
    .
    .

除了背景也被视为 blob 的事实之外,这是可行的。

4

1 回答 1

0

CvSet 是一个类 - 所以不确定第二行在做什么。在 Python 中也没有原生 Blob - 这是正在返回的 cv.CvSet 还是 cv.CvSeq 序列?

或者您是否在阈值处理后找到轮廓 - 然后像在 contours.py 示例中那样遍历它们?这可能是一个更好的方法......

于 2010-11-19T09:51:45.107 回答