gpt4 book ai didi

python - 尽管初始大小固定,但跟踪对象的 BoundingBox/ROI 的大小不断增加

转载 作者:太空狗 更新时间:2023-10-29 20:29:16 26 4
gpt4 key购买 nike

我正在尝试使用 Media Flow Tracker 根据区域跟踪我的手,但边界框在一段时间后不断增加。它在前 10 秒左右正常工作。

这是一个代码片段:

def main():
display = SimpleCV.Display()
cam = Kinect()
ts = []
bb = None
img = cam.getDepth().flipHorizontal()
while display.isNotDone():
depth = cam.getDepth().flipHorizontal()
filtered = depth.stretch(0, 180).binarize().dilate(1)

if bb is None:
blobs = filtered.findBlobs()
if blobs:
hand = blobs.filter(abs(7000 - blobs.area()) < 500)
print hand
if hand:
bb = hand[0].boundingBox()
print bb
if bb is not None:
ts = filtered.track("mftrack", ts, img, bb)
if ts:
ts.drawBB()
ts.showPixelVelocityRT()
ts.drawPath()
filtered.show()

最佳答案

我将从以下行中删除对 dilate 的调用:

filtered = depth.stretch(0, 180).binarize().dilate(1)

来自 SimpleCV documentation :

dilate(iterations=1) Apply a morphological dilation. An dilation has the effect of smoothing blobs while intensifying the amount of noise blobs. This implementation uses the default openCV 3X3 square kernel Erosion is effectively a local maxima detector, the kernel moves over the image and takes the maxima value inside the kernel.

filtered 变量在每次使用 filtered.findBlobs() 进行循环迭代时使用。这些 Blob 的强度和密度用于确定边界框的尺寸。

您正在调用 stretch 函数和 dilate。随着时间的推移,对 dilate 的调用导致噪声被检测为手的一部分,因此边界框相应增加。

关于python - 尽管初始大小固定,但跟踪对象的 BoundingBox/ROI 的大小不断增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com