2016-07-22 9 views
0

これはコンピュータからビデオファイルを読み込むための簡単なプログラムです。私の元のビデオは1080pの解像度です。私がコードを実行すると、プログラムの画面(imshow)は720pしかない私のPCの画面を超えています。それを1080pから720または480pにリサイズする方法。 2番目の質問、どのように画面のピクセル数を見つけるのですか?imshow resize + count white pixels

マイコード:

import numpy as np 
import cv2 

cap = cv2.VideoCapture('apple.mp4') 

while(cap.isOpened()): 
    ret, frame = cap.read() 

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 

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

cap.release() 
cv2.destroyAllWindows() 

答えて

1

あなたが画面に収まるようにimshow()前に画像のサイズを変更するcv2.resize()を使用することができ、あなたが使用することができますマットの総画素数を取得するためにgray.shape[0] * gray.shape[1]

import numpy as np 
import cv2 

cap = cv2.VideoCapture('apple.mp4') 

total_white_pixels_in_video_sequence = 0 

while(cap.isOpened()): 
    ret, frame = cap.read() 
    frame = cv2.resize(frame, None, fx = 0.5, fy = 0.5, interpolation = cv2.INTER_CUBIC) 

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 

    print "No. of pixels : ", gray.shape[0] * gray.shape[1] 
    # Counting the number of pixels with given value 
    total_white_pixels_in_video_sequence += np.count_nonzero(gray == 255) 

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

cap.release() 
cv2.destroyAllWindows() 

print "total_white_pixels_in_video_sequence : ", total_white_pixels_in_video_sequence 
+0

私は追加の機能を持っています。バックグラウンドの減算です。私は白いピクセルだけに興味があります。番号を取得する方法。 –

+0

回答に追加されていますが、テストされていません。 – ZdaR

+0

numpyが定義されていません。 numpy.count_nonzero(灰色== 255)で何かが間違っています –