如何获取某个区域的像素值?

时间:2016-08-03 10:53:23

标签: python windows opencv tracking simplecv

因为我对编程比较陌生,所以我需要帮助解决这个问题。 我在Windows计算机上使用SimpleCV和Python 2.7。 我想要做的是得到一个(自写)程序告诉我沿预设线的像素值,这里最重要的是每个像素的颜色。

我真的不知道从哪里开始,因为我只找到了要求单个像素值的示例。

可能还有一点重要的是要知道,我不想用图片做这件事但是用网络直播制作的实时视频,预设线将是我将跟踪的对象的半径网络摄像头。

总而言之:我想用我的网络摄像头追踪一个物体,需要一个程序告诉我沿着他的每个像素的颜色(数字,例如" 255"白色)被跟踪物体的半径线。

这是我目前用于跟踪跟踪的预先编写的代码:

AVSystemController_SystemVolumeDidChangeNotification

here is a snapshot of the tracked object

我需要沿着半径的像素颜色,因为我想知道光强度从中心到边缘的减小程度。

有人可能知道如何解决这个问题吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

假设你有中心(x0, y0)。您希望迭代从(x0, y0)(x1, y1)的半径上的像素,这是圆上的一个点。

在C ++中,您可以将LineIterator用于此目的。但是,我没有找到python ...

因此,您可以在Python中实现自己的LineIterator(或者使用the one made by a nice StackOverFlow contributor),或者如果性能不是您应用程序中的关键问题,则可能会遇到可怕的黑客攻击:

  • 创建一个与图像大小相同的黑色二进制掩码
  • 在此面具上画线
  • 使用NumPy nonzero function查找所有非黑色像素。
  • 您已获得线条的像素(虽然它们没有订购)
  • 根据他们与中心的距离订购。

我认为只是采用我在另一个StackOverflow问题上链接的行迭代器仍然是最简单的方法。