Python SimpleCV-检测图像中的亮点

Python SimpleCV-检测图像中的亮点,python,python-2.7,simplecv,Python,Python 2.7,Simplecv,因此,我需要使用SimpleCV和python检测图像中的亮点。 我已经完成了图像采集,唯一的问题是找到亮点。你知道我该怎么做吗?(已获得高斯模糊,用于点到面转换)您可以在SimpleCV中使用findBlobs函数 #find the green ball green_channel = Camera().getImage().splitChannels[1] green_blobs = green_channel.findBlobs() #blobs are returned in ord

因此,我需要使用SimpleCV和python检测图像中的亮点。 我已经完成了图像采集,唯一的问题是找到亮点。你知道我该怎么做吗?(已获得高斯模糊,用于点到面转换)

您可以在SimpleCV中使用findBlobs函数

#find the green ball
green_channel = Camera().getImage().splitChannels[1]

green_blobs = green_channel.findBlobs()
#blobs are returned in order of area, largest first

print "largest green blob at " + str(green_blobs[0].x) + ", " + str(green_blobs[0].y)
示例来自:

有关概念的更多文档:

编辑: 要将斑点从最亮到最暗排序,请使用sortColorDistance()方法:


似乎是你想要的——编辑:Ohp,simpleCV,而不是opencv。我的错。你会反对使用opencv吗?@Marviel我的意思是,我可以使用它。我使用SimpleCV的唯一原因是,它不会像未清理的OpenCV那样伤害我的眼睛,也不会让我头晕,有时甚至会让OpenCV变得非常混乱。旁注:我可以通过使用SimpleCV进行两次调用来完成教程中描述的大部分内容,这就是我使用SimpleCV而不是OpenCV的原因。另外,我可以礼貌地问一下,是谁否决了这个问题,为什么?我知道,仅仅降低1个百分点似乎不算太多,但对像我这样的用户来说,这是一个打击。虽然它最终可能会有所帮助,但我可以使用颜色通道和斑点检测,问题是我不是在寻找最大的斑点,但是在最亮的blob之后。首先返回最大的blob就是函数的实现方式。如果您想要最亮的斑点,那么您必须手动查找每个斑点中的平均像素强度。另一种方法(可能更接近您想要的方法)是在SimpleCV中使用BlobMaker。这是我答案中的第二个环节。它允许您设置阈值,并且仅选择强度大于该阈值的水滴。你也可以指定水滴大小的限制。是的,我只是尝试混合使用SimpleCV和OpenCV,但没有找到最亮的斑点。我将检查它是如何结束的,然后根据结果标记您的应答器。
blurred = camera.applyGaussianFilter(grayscale=True)
#find them blobs
blobs = blurred.findBlobs()
#draw their outlines
blobs.draw(autocolor=True)
#sort them from brightest to darkest and get center of the brightest one
brightest = blobs.sortColorDistance((255, 255, 255))[0].coordinates()