gpt4 book ai didi

python - 如何从cv2 python中的蒙版裁剪区域

转载 作者:太空宇宙 更新时间:2023-11-03 22:43:43 24 4
gpt4 key购买 nike

我有黑屏和白球的视频我想在每一 帧中跟踪白球的中心(输出为 x、y 坐标)。所以我尝试使用 cv2.HoughCircles 但无论我如何调整参数,我都不会获得 100% 的跟踪。

所以我有另一个想法。因为当对圆形的每个像素进行平均时,将得到圆的中心点。我决定尝试这个想法。但是循环每个像素直到我们发现白色是不可行的。有没有办法(粗略地)裁剪以仅获得白色圆圈像素? (例如,我的图像分辨率为 1920x1080,但球的大小不会超过 50x50 像素。因此在 python 中处理它会太慢。那么有没有办法将图像中的区域裁剪为 50x50 的大小? )

最佳答案

没关系,我知道了。这是我的解决方案

hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower_white = np.array([0,0,150], dtype=np.uint8)
upper_white = np.array([0,0,255], dtype=np.uint8)
mask = cv2.inRange(hsv, lower_white, upper_white)

indcies = np.nonzero(mask)
size = len(set(zip(indcies[0], indcies[1])))
avgX, avgY = 0, 0
minX, minY = 10000, 10000
maxX, maxY = -1, -1

for (x, y) in set(zip(indcies[0], indcies[1])):
minX, minY, maxX, maxY = min(minX, x), min(minY, y), max(maxX, x), max(maxY, y)
avgX += x
avgY += y
avgX /= size
avgY /= size
radius = int(round(max(maxX - minX, maxY - minY)/2))
cv2.circle(image,(int(round(avgY)),int(round(avgX))),radius,(0,255,0),2)
plt.imshow(image)
plt.show()

引用:

关于python - 如何从cv2 python中的蒙版裁剪区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50913339/

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