Python+OpenCV 목표 추적 기본 운동 검 측 실현
영상 목표 추적 을 실현 하 는 방법 이 많 습 니 다.모든 이동 목 표를 추적 할 때 프레임 간 의 차 이 는 유용 해 집 니 다.동 영상 에서 이동 하 는 손 을 추적 할 때 피부색 의 평균 값 이동 방법 을 바탕 으로 하 는 것 이 가장 좋 은 해결 방안 이다.추적 대상 의 한 면 을 알 았 을 때 템 플 릿 매 칭 은 좋 은 기술 입 니 다.
본 논문 코드 는 기본 적 인 운동 검 사 를 하 는 것 이다.
'배경 프레임'과 다른 프레임 간 의 차 이 를 고려 합 니 다.
이런 방법 은 검 측 결과 가 좋 지만 배경 프레임 을 미리 설정 해 야 한다.실외 에 있 으 면 빛 의 변화 가 오 검 사 를 일 으 킬 수 있 고 한계 가 있다.
import cv2
import numpy as np
camera = cv2.VideoCapture(0) # 0
#
if (camera.isOpened()):
print('Open')
else:
print(' ')
# , size
size = (int(camera.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(camera.get(cv2.CAP_PROP_FRAME_HEIGHT)))
print('size:'+repr(size))
es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (9, 4))
kernel = np.ones((5, 5), np.uint8)
background = None
while True:
#
grabbed, frame_lwpCV = camera.read()
# , , 。
# , : 、 。 。
gray_lwpCV = cv2.cvtColor(frame_lwpCV, cv2.COLOR_BGR2GRAY)
gray_lwpCV = cv2.GaussianBlur(gray_lwpCV, (21, 21), 0)
#
if background is None:
background = gray_lwpCV
continue
# , (different map)。
# , (dilate) , (hole) (imperfection)
diff = cv2.absdiff(background, gray_lwpCV)
diff = cv2.threshold(diff, 25, 255, cv2.THRESH_BINARY)[1] #
diff = cv2.dilate(diff, es, iterations=2) #
#
image, contours, hierarchy = cv2.findContours(diff.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) #
for c in contours:
if cv2.contourArea(c) < 1500: # , , 。
continue
(x, y, w, h) = cv2.boundingRect(c) #
cv2.rectangle(frame_lwpCV, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow('contours', frame_lwpCV)
cv2.imshow('dis', diff)
key = cv2.waitKey(1) & 0xFF
# 'q'
if key == ord('q'):
break
# When everything done, release the capture
camera.release()
cv2.destroyAllWindows()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.