OpenCVSharpを使って、WebカメラでJpeg形式の静止画を撮影する。
まずは、前回、前々回と同じようにDLLを同じフォルダに置いておく。
今回は、コマンドラインから直接入力してもOK。
(.ps1ファイルにした方が楽だろうけど…)
動作としては、Webカメラの映像を取得して、20フレーム目を静止画として保存している。
ここでは、「foo.jpg」という名前で同じフォルダに保存している。
- [void][System.Reflection.Assembly]::LoadFrom( ( Join-Path $pwd OpenCvSharp.dll) )
- # Webカメラを取得する。
- $camera = [OpenCvSharp.CvCapture]::FromCamera(0)
- # 撮影する静止画のサイズを指定する。
- # デフォルトサイズ?でよければ、指定しなくてもいい。
- $camera.FrameWidth = 640
- $camera.FrameHeight = 480
- # 起動して直ぐのは、真っ白だったり、暗かったりするから、20フレームくらい撮る。
- # 戻り値は OpenCvSharp.IplImage型
- 1..20 | % { $iplImage = $camera.QueryFrame() }
- # OpenCvSharp.IplImage型をSystem.Drawing.Bitmap型へ変換する
- $bmp = [OpenCvSharp.BitmapConverter]::ToBitmap($iplImage)
- # Jpegで保存する。
- $bmp.Save((Join-Path $pwd "foo.jpg"), [System.Drawing.Imaging.ImageFormat]::Jpeg)
- $bmp.Dispose()
- $iplImage.Dispose()
0 コメント:
コメントを投稿