opencv 검 측 동적 물체 의 실현

3314 단어 opencv동적 물체
이전에 나 는 슈퍼마켓 에서 물체 가 지나 갈 때 감시 하 는 스크린 가장자리 에 녹색 테두리 가 나타 나 는 것 을 보 았 다.재 밌 겠 다.opencv 로 비슷 한 효 과 를 낼 수 있 는 지 시험 해 보 자.
*8195°내 가 사용 하 는 동적 물 체 를 검사 하 는 방법 은 앞 뒤 두 프레임 의 이미 지 를 비교 하 는 것 이다.즉,현재 화면 과 이전 프레임 의 화면 이 다르다 는 것 이다.우 리 는 두 프레임 의 화면 을 비교 했다.그리고 틀 은 운동 하 는 물 체 를 선택한다.우 리 는 또 프로그램 이 현재 창 에 물체 가 운동 하고 있 는 지 판단 할 수 있 기 를 바란다.그럼 우 리 는 상 태 를 추가 해 야 한다.우리 가 언제 물체 가 이동 하 는 지 편리 하 게 찾기 위해 서 나 는 시간 을 인쇄 했다.
*8195:8195:우리 프로그램 이 이동 하 는 물 체 를 감지 할 때 윤곽 을 포착 하고 외 접 직사각형 상 자 를 추가 하여 x,y 의 좌 표를 되 돌려 줍 니 다.좌 표를 되 돌려 주지 않 을 때 는 물체 운동 이 없다 는 것 을 의미 하 며,우 리 는 좌표 값 을 통 해 물체 가 움 직 이 는 지 여 부 를 의미한다.로 컬 시간 을 출력 합 니 다.
코드:

import cv2
import time
import numpy as np

def videos():
    cap = cv2.VideoCapture(1)
    #      640*480,        
    cap.set(3, 640)
    cap.set(4, 480)

    img_num = 0
    k = np.ones((3, 3), np.uint8)

    while True:
        success, img = cap.read()
        localtime = time.asctime(time.localtime(time.time()))

        if not img_num:
            #                
            previous = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        gray_diff = cv2.absdiff(gray, previous)  #       
        # previous           

        thresh = cv2.threshold(gray_diff, 40, 255, cv2.THRESH_BINARY)[1]
        mask = cv2.medianBlur(thresh, 3)

        close = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, k)

        cnts = cv2.findContours(close,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)[0]
        for c in cnts:
            area = cv2.contourArea(c)
            if area > 50:
                x, y, w, h = cv2.boundingRect(c)
                cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

                if x>0:
                    print(" ",localtime)

        cv2.putText(img, localtime, (30, 30), cv2.FONT_HERSHEY_COMPLEX, 0.7, (0, 0, 255), 2)
        cv2.imshow("x", close)
        cv2.imshow("Result", img)
        img_num += 1

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

videos()
조용 하 다
在这里插入图片描述
움 직 여:
창 을 지나 가 는 물체 가 있 을 때 콘 솔 에서 시간 을 출력 합 니 다.이렇게 하면 우리 가 녹화 한 동 영상 에서 찾 을 수 있다.
在这里插入图片描述
在这里插入图片描述
 편 의 를 위해 나 는 창 왼쪽 상단 에 시간 과 날 짜 를 넣 었 다.
**주의!**반드시
localtime = time.asctime(time.localtime(time.time()))
주 순환 에 넣 으 십시오.그렇지 않 으 면 호출 된 순간의 로 컬 시간 만 되 돌려 주 고 프로그램 이 지속 되 지 않 습 니 다.
또한 time.sleep()를 사용 하여 시간 변 화 를 제어 할 수 없습니다.이것 은 우리 영상의 프레임 율 에 영향 을 줄 수 있 습 니 다.
*8195°이 방법의 단점 은 환경 광선 의 밝기 변화 가 너무 클 때 돌아 오 는 윤곽 에 변화 가 생 겨 프로그램 이 전체 화면 이 운동 하고 있다 고 판단 하 는 점 을 개선 해 야 한 다 는 것 이다.
여기 서 opencv 검 측 동적 물체 의 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 opencv 검 측 동적 물체 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기