나는 아주 간단하게하려고합니다 : 객체 추적 용 비디오에서 bg 이미지를 빼는 것입니다. 나는 이미지가 다음과 같이 서로 단순하게 뺄 수 있음을 이해했다. img3 = img2 - img1
. 그러나 한 이미지로 간단하게 시작할 때도 검은 선을 추가하고 img2로 저장하면 img3이 그 선을 표시하지 않습니다. 내가 노호을 img1 및 IMG2 다음과 같은 코드opencv로 파이썬에서 두 개의 비디오 프레임을 빼는 방법
import cv2
img1 = cv2.imread("img1.png")
img2 = cv2.imread("img2.png")
img3 = img2 - img1
cv2.imwrite("img3.png",img3)
를 실행하면 :
내가 대신 오른쪽에있는 이미지, 아래 왼쪽에있는 이미지를 얻을 :
비디오에서 배경 추출을 위해이 방법을 사용하고 싶습니다. emtpy 장면을 보여주는 bg 이미지 파일과 때로는 객체가 화면 안팎으로 움직이는 동일한 장면을 보여주는 비디오가 있습니다. 나는 다음과 같은 코드를 사용하지만, 유사 장면없이 볼 단지 객체 대신 B/W의 이미지를 얻을 ..
import cv2
import numpy as np
from PIL import Image
capture = cv2.VideoCapture("video.mov")
while True:
f, frame = capture.read()
frame = cv2.GaussianBlur(frame,(15,15),0)
frame = frame - bg
cv2.imshow("window", frame)
추신 : 나는 자동 배경 공제에 대해 알고하지만 난 아주 좋은 배경 파일과 매우 명확 비어 있습니다 매우 명백한 물체를 가진 장면이 이렇게 쉽게 작동해야한다고 생각했습니다!
업데이트 : 필자는 두 이미지로 원하는 것을 얻는 데 효과가있는 PIL ImageChops 차이 기능에 대해 알아 냈지만 opencv로 연 비디오에는 사용할 수없는 것으로 보입니다. 또한 numpy 배열을 사용하여 ImageChops.difference (img1, img2)를 수동으로 수행 할 수 있습니까?