OpenCvSharp

OpenCvSharp でC#で組めるのはいいですね。中のソースを少し見てみましたが、shimatさんに感謝!

OpenCv のPython のチュートリアルに近い形で実装した場合

これだとキー待ちでループして気持ち悪いので、もう少し C# らしく書くと、こんな感じかな。

[ WARN:0] videoio(MSMF): async ReadSample() call is failed with error status: -1

OpenCVで、突然次のエラーが出るようになった。
[ WARN:1] videoio(MSMF): can’t grab frame. Error

原因は、VideoCapture を2つのプロセスで起動していたため、あとから起動したプロセスがフレームを取得することができなかったため。

OpenCV: FFMPEG: tag 0x5634504d/’MP4V’ is not supported with codec id 12 and form
at ‘mp4 / MP4 (MPEG-4 Part 14)’
OpenCV: FFMPEG: fallback to use tag 0x7634706d/’mp4v’
[ WARN:0] videoio(MSMF): OnReadSample() is called with error status: -1072875772

[ WARN:0] videoio(MSMF): async ReadSample() call is failed with error status: -1
072875772
[ WARN:1] videoio(MSMF): can’t grab frame. Error: -1072875772
[ WARN:1] videoio(MSMF): can’t grab frame. Error: -2147483638
[ WARN:1] videoio(MSMF): can’t grab frame. Error: -2147483638
[ WARN:1] videoio(MSMF): can’t grab frame. Error: -2147483638
[ WARN:1] videoio(MSMF): can’t grab frame. Error: -2147483638

Download YouTube

テスト用の動画をYouTubeから調達

Video の DCT, IDCT ローパス

OpenCvで、リアルタイムで、Video を200×200にスライスして、DCT→ローパス→IDCT を行ってみた。

左から、オリジナル、DCT、DCTの高周波成分をカット( 情報量はオリジナルの 1/100 )、IDCTで逆変換結果。

OpenCVで、動き検出

【爆速】OpenCVで複数の物体検出 -ラズパイ- を参考に、物体認識を試してみた。

単一オブジェクトの動き検出

KMeans を使って複数オブジェクトを認識をしてみたところ、ノイズがあると重心がうまく分離できず、Bounding Box が大きくずれてしまう。また、同一の物体であっても、複数のクラスターから構成されてしまうという問題点があった。

次に、オブジェクト輪郭検出 を参考に 複数のオブジェクトの動き認識してみた。 動いていないと認識できない、物体の特定ができない、といった問題があり、 正確ではないけれど、ある程度認識することができる。

drawContours だけで輪郭を描画できる。

OpenCv で動きを検出したらビデオに出力

動きを検出したら、ビデオき書き出す

OpenCvで timelapse

既存のビデオファイルから、タイムラプスを作成する方法

fourcc : Windows 10 の場合、次の動作を確認した。

フォーマットfourcc
aviDIVX
aviDIVX
wmvWMV1
wmvWNV2
mp4MP4V

OpenCV でキャプチャーしたビデオをファイルに出力

OpenCV でキャプチャーしたビデオをファイルに出力

参考
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_gui/py_video_display/py_video_display.html

OpenCV で背景差分

フレームを直接操作した場合

Numpy で書いてみた

BackgroundSubtractorMOG でもっと簡単に書ける

背景差分
bgsegm は、Background-Foreground Segmentation Methods の略

opencv Tutorial 顔認識

opencv Tutorial Cascade Classifier