在一个被跟踪的物体周围画一个圆,显示它的半径并得到沿半径的像素属性

2024-09-25 00:26:08 发布

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

我对编程非常陌生,目前正尝试在Windows7上使用Python2.7使用SimpleCV。 我用一束激光,将它直接对准连接到电脑上的USB摄像头的ccd芯片,得到一个光照强度的实时视频,就像屏幕上的一个亮点。我需要程序来做的是告诉我光斑的半径和像素属性,即每个像素沿半径的颜色,这样我就可以看到光强度如何下降(从中心到边缘),以便绘制一个以最高光强度为峰值的高斯分布曲线。你知道吗

因此,我正在使用一个已经编写好的代码来跟踪一个白色的球。所以它所做的就是找到圆形的白色斑点并在其周围画一个圆。 到目前为止,这对我来说很有效,除了它没有环绕整个光点,而是只环绕中心最亮的光点。 现在我想让半径以数字的形式显示在屏幕上,像素的属性从中心开始,再向外延伸。 因为我是编程新手(正如我已经说过的),我甚至不知道从哪里开始。我希望你们能帮我!提前谢谢!你知道吗

这是我目前使用的代码:

print __doc__

import SimpleCV

display = SimpleCV.Display()
cam = SimpleCV.Camera()
normaldisplay = True

while display.isNotDone():
    if display.mouseRight:
        normaldisplay = not(normaldisplay)
        print "Display Mode:"

img = cam.getImage().flipHorizontal()
dist = img.colorDistance(SimpleCV.Color.BLACK)
segmented = dist.stretch(200,255)
blobs = segmented.findBlobs()
if blobs:
    circles = blobs.filter([b.isCircle(0.2) or b in blobs])
    if circles:
        img.drawCircle((circles[-1].x, circles[-1].y), circles[-1].radius(),SimpleCV.Color.BLUE,3)

if normaldisplay:
    img.show()
else:
    segmented.show()

Tags: imgif属性屏幕编程display半径像素