動画像処理

OpenCVとPythonを用いて以下の処理を実装します.

①動画読み込み・保存   ②DSA   ③ラベリング処理(リアルタイム)←割愛

          Original
                                              DSA

①動画読み込み・保存(inout.py

import cv2

def main():
     # Webカメラから入力
     cap = cv2.VideoCapture(0) ←パス指定、ファイルなら" filename.mp4"

     # MP4形式指定
     fmt=cv2.VideoWriter_fourcc('m','p','4','v')
     fps=30.0
     size=(500,600)
     out=cv2.VideoWriter('angio.m4v',fmt,fps,size)

     while True:
     # ret・・・True or False
         ret, frame = cap.read()
         if not ret:
               break

     # サイズに縮小
         frame = cv2.resize(frame, size)

     # ファイル保存
                out.write(frame)
     # 画像表示
         cv2.imshow('Raw Frame', frame)    k = cv2.waitKey(1)

         if k == 27 or k==13 :break

     # キャプチャをリリースしてウィンドウをすべて閉じる
     out.release()
     cap.release()
     cv2.destroyAllWindows()

if __name__ == '__main__':
      main()

②DSA(DSA.py) ・・・ inout.pyと連動して使用して下さい.

import cv2

def main():
        cap = cv2.VideoCapture("angio.m4v")

        size=fmt=cv2.VideoWriter_fourcc('m','p','4','v')
        fps=30.0
        size=(500,600)
        out=cv2.VideoWriter('DSA.m4v',fmt,fps,size,False)

        ret, mask = cap.read()

        # グレースケール変換
        mask = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY)
        mask = cv2.resize(mask, size)

        while True:
        # OpenCVでWebカメラの画像を取り込む
                 ret, frame = cap.read()
                 if not ret:
                        break

        # スクリーンショットを撮りたい関係でサイズに縮小
                 frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
                 frame = cv2.resize(frame, size)

        # 画像表示
                cv2.imshow('original', frame)

        # サブトラクション処理

                sub = frame - mask + 127
                sub[sub<0]=0
                sub[sub>255]=255

                out.write(sub)
        # フレームとマスクの差分画像を表示
                cv2.imshow("DSA",sub)

                k = cv2.waitKey(1)
                if k == 27 or k==13 :break

     # キャプチャをリリースしてウィンドウをすべて閉じる
     out.release()
     cap.release()
     cv2.destroyAllWindows()

if __name__ == '__main__':
      main()

無料でホームページを作成しよう! このサイトはWebnodeで作成されました。 あなたも無料で自分で作成してみませんか? さあ、はじめよう