나는 2 주 동안 python으로 opencv를 사용 해왔다. 나는 움직이는 물체의 중심을 찾고 싶다.움직이는 이진 이미지에서 점의 중심을 찾는 방법
먼저 두 프레임과 비트와의 차이점을 찾습니다. bitwise 후에는 아래 그림에서 볼 수 있듯이 움직이는 물체 (쿼드 로터) 주위에 흰색 점들의 그룹처럼 나옵니다.
내 질문은 :이 경우처럼 움직이는 물체 (쿼드 로터)의 중심을 찾기 위해 어떤 방법을 사용해야합니까?
나는이 모든 점들의 평균 중심을 찾을 수있을 것이라고 생각했지만 어떻게해야할지 모르겠다. 여기
샘플 사진에게 있습니다여기
내 코드는
import cv2
def diffImg(t0, t1, t2):
d1 = cv2.absdiff(t2, t1)
d2 = cv2.absdiff(t1, t0)
return cv2.bitwise_and(d1, d2)
cam = cv2.VideoCapture('track_outdoor.avi')
winName = "Movement Indicator"
cv2.namedWindow(winName, cv2.CV_WINDOW_AUTOSIZE)
# Read three images first:
t_minus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
t = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
t_plus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
while True:
diff_frame= diffImg(t_minus, t, t_plus)
cv2.imshow('Original', t_plus)
cv2.imshow(winName, diff_frame)
# Read next image
t_minus = t
t = t_plus
t_plus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
key = cv2.waitKey(10)
if key == 27:
cv2.destroyWindow(winName)
break
업데이트 # 1
,536,먼저 답장을 보내 주셔서 감사합니다.
방금 질량 센터를 찾기 위해 방법을 적용하려 시도했지만, 필요하면 정확하지는 않습니다.
그래서 diff_frame의 밝기를 바꾸면 또 다른 아이디어가 떠 올랐습니다 윤곽선이나 다른 방법과 같은 방법을 사용하면 더 쉽고 정확합니다.
diff 이미지에서 이러한 점의 불규칙한 바깥 윤곽을 찾으려고 했습니까? – dervish