gpt4 book ai didi

python - 如何从裁剪的 numpy 矩形定义顶部和左侧点?

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

美好的一天,在下面的代码中,我能够从第一帧裁剪出一个矩形 ROI。此 while 循环的最终结果提供了一个存储为名为“monitor_region”的 numpy 数组的 ROI。

video = cv2.VideoCapture("Rob.mp4")       
ret, frame = video.read()
roi_status = False

while(roi_status == False):
roi = cv2.selectROI("Region Selection by ROI", frame, False)
if(not all(roi)):
print("Undefined monitor region.")
continue
monitor_region = frame[int(roi[1]):int(roi[1]+roi[3]),int(roi[0]):int(roi[0]+roi[2])]
cv2.imshow("Selected Region", monitor_region)
if(cv2.waitKey(0) & 0xFF == 8): #backspace to save
print("Monitor region has been saved.")
roi_status = True
cv2.destroyAllWindows()

因为这个“monitor_region”是整个框架的一部分,也是一个矩形。因此,我正在寻找一个可行的解决方案来定义它的左侧和顶部点,以便定义一个检查范围(如图所示)。在下面的代码中,我可以定义 roi 的宽度和高度。

monitor_width = monitor_region.shape[1]
monitor_height = monitor_region.shape[0]

enter image description here

但是,我仍然缺乏left和top点。一旦我获得了 ROI 的顶部和左侧点。我可以执行 x 和 y 点检查,如下所示,我用它来确定对象是否存在于 ROI 内。

if((monitor_left < Point_x < (monitor_left + monitor_width)) and (monitor_top < Point_y < (monitor_top + monitor_height))):

最佳答案

selectROI 返回一个完全包含您所寻找的值的元组:所选 ROI 的左边界、上边界、宽度和高度。

如果你print(roi)你会得到类似(100,150,300,200)

的东西

您可以像这样解压值:

x,y,width,height = roi

其中 x 是左边界,y 是上边界。

关于python - 如何从裁剪的 numpy 矩形定义顶部和左侧点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57453266/

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