【发布时间】:2016-01-18 23:27:39
【问题描述】:
我在 Python 2.7.9 上使用 OpenCV 3.0.0。我正在尝试在具有静止背景的视频中跟踪一个对象,并估计它的一些属性。由于图像中可能有多个移动对象,因此我希望能够区分它们并在视频的剩余帧中单独跟踪它们。
我认为可以做到这一点的一种方法是将图像转换为二进制,获取 blob(在本例中为被跟踪对象)的轮廓并获取对象边界的坐标。然后我可以转到灰度图像中的这些边界坐标,获取由该边界包围的像素强度,并在其他帧中跟踪此颜色渐变/像素强度。这样,我可以将两个对象彼此分开,这样它们就不会被视为下一帧中的新对象。
我有轮廓边界坐标,但我不知道如何检索该边界内的像素强度。有人可以帮我吗?
谢谢!
【问题讨论】:
-
cv2.findContours当然可以为您完成这项工作,它会返回每个轮廓的(x,y)坐标列表。然后,您可以使用这些坐标来索引您的图像并获取正确的强度。但是,我不确定您希望如何存储这些强度。你只想要一个单一的一维强度数组吗?你想把它们戴在某种面具里吗?您能否详细说明您希望如何存储这些强度? -
我使用
cv2.findContours找到了轮廓点,并将它们存储在一个数组中。我只想要该边界内所有像素的一维强度值数组。另外,我不确定我应该如何索引。你能解释一下吗? -
我使用了
for循环来索引cv2.findContours的输出。然后我只是使用pxlVal = img[x, y]来获取对象边界(轮廓)上的像素值。我如何获得边界内的像素? -
看看我的回答。
-
嘿@rayryreg 请在这里检查我的问题 [stackoverflow.com/questions/36861334/…
标签: python image opencv image-processing opencv-contour