因此,由于我对编程比较陌生,所以我需要一些帮助来解决这个问题。 我在Windows计算机上使用SimpleCV和python2.7。 我要做的是让一个(自写)程序告诉我沿着一条预设线的像素值,这里最重要的是每个像素的颜色。在
我真的不知道从哪里开始,因为我只找到了一些例子,它被要求提供单个像素的值。在
可能还很重要的一点是,我不想用一张图片,而是用一个网络摄像头制作的实时视频,预设线是我将用网络游戏跟踪的对象的半径。在
总而言之,我想用我的网络摄像头跟踪一个物体,需要一个程序来告诉我沿着被跟踪对象半径线的每个像素的颜色(用数字表示,例如“255”代表白色)。在
这是我当前用于obejct跟踪的预先编写的代码:
print __doc__
import SimpleCV
display = SimpleCV.Display()
cam = SimpleCV.Camera()
normaldisplay = True
while display.isNotDone():
if display.mouseRight:
normaldisplay = not(normaldisplay)
print "Display Mode:", "Normal" if normaldisplay else "Segmented"
img = cam.getImage().flipHorizontal()
dist = img.colorDistance(SimpleCV.Color.BLACK).dilate(2)
segmented = dist.stretch(200,255)
blobs = segmented.findBlobs()
if blobs:
circles = blobs.filter([b.isCircle(0.2) for 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()
here is a snapshot of the tracked object
我需要沿着半径的像素颜色,因为我想知道从中心到边缘的光强度是如何降低的。在
有人知道如何解决这个问题吗? 谢谢您!在
假设你有一个中心
在C++中,你可以使用LineIterator来实现这个目的。但是,我没有为python找到它。。。在(x0, y0)
。您需要迭代半径上从(x0, y0)
到(x1, y1)
的像素,这是圆上的一个点。在因此,您可以在Python中实现自己的LineIterator(或使用the one made by a nice StackOverFlow contributor),或者,如果性能不是应用程序中的关键问题,则可以求助于可怕的黑客:
我认为在另一个StackOverflow问题上使用我链接的行迭代器仍然是最简单的方法。在
相关问题 更多 >
编程相关推荐