首页 > 解决方案 > OpenCV python输出边界矩形X坐标到对象

问题描述

我需要创建一个具有边界矩形 X 坐标值的对象,该对象正在跟踪运动。在 OpenCV 中使用 Python。有谁知道我可以做到这一点的方法吗?我将使用该对象来计算激光跟踪仪的伺服值。

import cv2

cap=cv2.VideoCapture(0)

ret1,frame1= cap.read()

gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
gray1 = cv2.GaussianBlur(gray1, (21, 21), 0)
cv2.imshow('window',frame1)

while(True):
    ret2,frame2=cap.read()
    gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)
    gray2 = cv2.GaussianBlur(gray2, (21, 21), 0)

    deltaframe=cv2.absdiff(gray1,gray2)
    frame_flip2 = cv2.flip(deltaframe, -1)
    #cv2.imshow('delta',frame_flip2)
    threshold = cv2.threshold(deltaframe, 25, 255, cv2.THRESH_BINARY)[1]
    threshold = cv2.dilate(threshold,None)
    #cv2.imshow('threshold',threshold)
    _,countour,heirarchy = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    for i in countour:
        if cv2.contourArea(i) < 600:
            continue

        (x, y, w, h) = cv2.boundingRect(i)
        cv2.rectangle(frame2, (x, y), (x + w, y + h), (255, 0, 0), 2)

    frame_flip = cv2.flip(frame2, -1)
    cv2.imshow('window',frame_flip)
    if cv2.waitKey(10) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

标签: pythonopencv

解决方案


推荐阅读