我需要一些关于opencv(python)中的blob的帮助。
事情是这样的:
我已经编写了可以正常工作的预处理函数,它们隔离感兴趣的区域并返回一个阈值图像,其中这些区域是白色的,其余的是黑色的。问题是,我只对白色区域感兴趣,但无论我做什么,我都会不断地将背景变成一个 Blob 。
我无法按大小过滤,因为我不知道对象有多远。
有没有办法只处理白色 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 的事实之外,这是可行的。
最佳答案
CvSet 是一个类 - 所以不确定第二行在做什么。在 Python 中也没有原生的 Blob - 这是正在返回的 cv.CvSet 还是 cv.CvSeq 序列?
或者您是否在阈值处理后找到轮廓 - 然后像在 contours.py 示例中那样遍历它们?这可能是一个更好的方法......
关于python - python中的Opencv + blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4197242/