ビデオ画像処理

まず、読み取った画像データ

1. PILを使用して読み取った画像を

Pythonのイメージングライブラリライブラリには、一般的に使用される画像である、多くが含まれている次のように使用されているopenメソッドを使用してイメージを読み込みます。

=「はcat.jpg」#インポートイメージ#インポートライブラリファイルは、画像アドレスIMG = Image.open(ファイル、モード=「R」)を定義する#は、ファイルの内容img.show()#表示画像のコンテンツを読みます

キーは2つのパラメータを含む、開くことです。

  • ファイル:ファイルオブジェクト名は、画像ファイルも文字列にすることができ、ファイル名を指定できます。
  • モード:オープンモード、デフォルトモードではRのみで、それ以外の場合はエラーになります。ファイルが画像の文字列であるとき、システムは、RBモードの読み取りを呼び出します。

ファイルオブジェクト画像が返されるオープンリーディングを通過した後、後続のすべての画像処理は、オブジェクトに基づいています。上記のコードはimg.showによって実行された後()システムが見るための画像を開いて表示するデフォルトの画像ブラウザを呼び出します。

▲コールimg.show()表示画像

このオブジェクトは、多くの方法は、サイズ、フォーマット、カラーモードなどの出力ファイル属性を、印刷するために使用することができる含んでいます。

プリント( 'IMG形式:'、img.format)#印刷画像フォーマット印刷( 'IMGサイズ:'、img.size)#印刷画像サイズプリント( 'IMGモード:'、img.mode)#画像カラーモード印刷

上記のコードは、実行結果を戻された後、次のように:

( 'IMG形式:'、 'JPEG')( 'IMGサイズ:'、(435、361))( 'IMGモード:'、 'RGB')

モード画像がカラーモードを指し、例えば、画像フォーマットの種類は、画像のサイズは、画像解像度はこのようなJPG、GIF、PNGなど;等の画像そのものであり、ここで、例示の寸法は、435×361(ピクセル)であります画像はRGBモードです。

第二に、OpenCVのを使用して、読み取った画像

OpenCVの読み取り、表示画像は最初、主に2つのメソッドがありCV2の第二のライブラリを使用することで、CVライブラリを使用することです。

最初:CVを用いて画像を読み取ります

インポート CVのAS cv2.cv #のインポートライブラリ 
ファイル= ' はcat.jpg '  #は、画像のアドレス定義する 
IMG = cv.LoadImage(ファイル)#の負荷画像 
cv.NamedWindow(' a_window '、cv.CV_WINDOW_AUTOSIZE)で適応ウィンドウを作成します。画像に存在する 
cv.ShowImage(' a_window '、IMG) 表示画像 
cv.WaitKey(0)#1 で使用される表示パラメータを
コードの表示

第二:CV2を用いて画像を読み取ります

インポートCV2#インポート・ライブラリ・ファイル= 'はcat.jpg' #ピクチャアドレスIMG = cv2.imread(ファイル)#は、画像cv2.imshow( '画像'、IMG)#表示画像cv2.waitKeyを読み取る定義(0)#表示と組み合わせて使用​​されるパラメータ

PILを呼び出すことにより、デフォルトの画像表示ツールである、とOpenCVのは、自身が作成したイメージ機能により、画像に表示されます。

さらに、両方の方法は、パラメータを待つミリ秒数を示すことを特徴とする請求機能キーボードを結合する役割そのwaitKey()メソッドを、有しています。メソッドを実行した後、プログラムは、キーボード入力かどうかを確認するために、ミリ秒単位の特定数を待ち、そして、対応するASCII値を戻します。引数が0の場合は、キーボード入力するまで無期限に待機します。

私は通常の方法は、より単純であるので、第2の方法を使用して画像を読み取ります。ここで次のように関数imread方法の詳細は、次のとおりです。

文法

cv2.imread(ファイル名[、フラグ])

説明

あなたは画像情報が空に返され読み取ることができない場合は画像の内容を読み込み、を含む、すべての形式で、ほぼ毎日シーンを含む画像フォーマットをサポート:

  • Windowsのビットマップは、ファイル:. * BMP、DIB *。
  • JPEGファイル:... * JPEG、JPG *、* JPE
  • JPEG 2000ファイル:. * JP2
  • PNGファイル:. * PNG形式
  • WEBPファイル:. * WEBP
  • 画像フォーマットを動かす:.... * PBM、* PGM、* PPM * .pxm、* PNM
  • Sunのラスタは、ファイル:. *のSr、* RAS。
  • TIFFファイル:. * TIFF、TIF *。
  • OpenEXRファイル:. * EXR
  • ラディアンスHDRファイル:. * HDR、* PIC。

パラメータ

  • 必要なファイル名、文字列、画像アドレス。
  • また、フラグ、int型のまたは対応する文字列、カラー読取モード。フラグ= 0又はcv2.IMREAD_GRAYSCALE場合、読取階調画像;もしフラグフラグ> 0又はcv2.IMREAD_COLOR、R / G / Bの3チャンネルカラー画像を読んだ場合

リターン

画像を読み取ることができない場合はNULL画像のコンテンツは、返されます。

ヒント: OpenCVの画像表示方法を使用することに加えて外に来て、多くの場合、OpenCVの画像表示でmatplotlibの、このシナリオはより一般的です。これは、画像のコントラストと参照画像、および出力の異なるモードの強力matplotlibの画像表示機能と組み合わせて借りすることができます。

第三に、映像データが読み出されます

最も一般的にも、ビデオライブラリOpenCVのを読み取るためのPythonを使用します。この論文では、一例として読み出した映像コンテンツの次のコードサンプル期間をMegamind.aviビデオと呼ばれます。

インポート CV2 インポートライブラリの 
CAP = cv2.VideoCapture(tree.avi 取得したビデオオブジェクト 
ステータス= cap.isOpened() ファイルが正しく知ら開くかどうかを決定する
のIFステータス:正常に開いた場合、ビデオの属性情報を取得する 
frame_width cap.get =(3) 取得フレーム幅 
FRAME_HEIGHT cap.get =(4) 取得枠の高さ 
frame_count cap.get =(7) フレームの総数を得る 
frame_fps cap.get =(5) フレームレートを得る
プリント' フレーム幅:'、frame_width) プリントアウト
を印刷"高フレーム:'FRAME_HEIGHT) プリントアウトを
印刷する' フレーム数:'frame_count) プリントアウトを
印刷する' フレームFPS:"、frame_fps) プリントアウト 
成功、フレーム= cap.read() のビデオを読み込みます
しばらく成功:リード状態がTrueの場合 
cv2.imshow(' vidoeフレーム'、フレーム)#のショーのフレーム画像 
の成功、フレーム= cap.read() 次のフレームを取得 
= cv2.waitKey K(1000 / INTを(frame_fps)) 各フレームの再生一定の遅延、指示入力を待っている間に
IFのK == 27: キーは、待機期間ESC中に検出された場合
BREAKの #1 出口ループcv2.destroyAllWindows()#閉じるすべてのWindows 
cap.release() 解放ビデオファイルオブジェクト
コードの表示

コードは空白行で区切られた4つの部分に分割されます。

第一の部分3は、前列、パイロット貯蔵された後、ビデオファイルを読み取り、ビデオオブジェクトを取得し、ビデオ読み出し状態を得ます。キーは、画像を読み取るために使用される、VideoCaptureです。

文法

cv2.VideoCapture(VideoCaptureのID |ファイル名| apiPreference)

説明

デバイスまたはビデオファイルを読み込み、およびビデオオブジェクトのインスタンスを作成します

パラメータ

必要な、VideoCapture ID |ファイル名

VideoCapture ID:int型、ID割り当てシステムのデバイスオブジェクト、IDは、デフォルトのデバイスオブジェクトはゼロです。

ファイル名:

  • このようabc.aviなどのビデオファイル、文字列の名前。現在のバージョンでのみaviファイル形式をサポートしています。
  • 画像、文字列、例えばIMG_%の2d.jpgの配列(img_00.jpg、img_01.jpg、img_02.jpg含む画像シーケンス、...)
  • 動画のURLアドレスなどのプロトコルとして、文字列、://ホスト:ポート/ SCRIPT_NAMEのscript_params | AUTH?
  • apiPreference:int型は、APIの背景を使用します

おすすめ

転載: www.cnblogs.com/lpapython/p/11101042.html