2017-02-16 24 views
-1

フレーム差分を使用してしきい値画像を取得する方法を教えてもらえますか? さまざまな背景減法について考えていますが、opencv pythonを使用した画像の減算を使用したしきい値画像

cv2.substract(IMG1、IMG2)は、この画像に

substract: Screenshot

を与えるが、私は、この結果はthreshold 誰もが私はscroll down toパソコンへ転送

使用することを行う方法を教えてもらえますしたいですcv2.createBackgroundSubtractorMOG2()またはそのような種類の関数 ここに私です

import cv2 
import numpy as np 
t=0.01 
background=cv2.imread('background2.png') 
cap = cv2.VideoCapture('car.mp4') 
ret,img=cap.read() 

avg_img = np.float32(img) 
while 1: 
    ret,img=cap.read() 
    cv2.accumulateWeighted(img,avg_img,0.1) 
    res1 = cv2.convertScaleAbs(avg_img) 
    sub_img=cv2.subtract(res1,img) 
    cv2.imshow('sub_img',sub_img) 
    cv2.imshow('sub_img',sub_img) 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 


cap.release() 
cv2.destroyAllWindows() 

マイOpenCVのバージョン3.0.0のpython 2.7あなたはこれでOKがCV2の外で行われているので

+0

あなたはCV2を使用する必要がありますか? cv2は、実装が難しい画像処理アルゴリズムには最適ですが、この場合、減算と閾値処理はnumpyで非常に簡単です。 – PrestonH

+0

あなたはnumpyを使ってそれを行う方法を教えてください。 –

+0

以下の回答を参照してください。 – PrestonH

答えて

2

# Subtraction, assuming img1 and img2 are numpy arrays with same dimension; optionally, use np.abs(img1-img2) if you don't care about the sign of the difference 
sub = img1 - img2 

# Thresholding 
threshold = 128 # Set your threshold value 
sub[sub >= threshold] = 255 # Above or equal threshold go to max value 
sub[sub < threshold] = 0  # Below threshold go to min value 
関連する問題