PowerShellで画像をグレースケールに変換する

| 2009年10月18日日曜日
OpenCVSharpを使って画像をグレースケールにする。
グレースケールにする方法は下記の二つ。

①画像を読み込む時にグレースケールで読み込む方法。
②OpenCvSharp.IplImageオブジェクトを減色する方法。

①の方法だと一度ファイルに保存する必要があるので、Webカメラでキャプチャーしながらの解析には向かない。その時は、②を使えばいい。

まずは、①のコード
  1. [void][System.Reflection.Assembly]::LoadFrom((Join-Path $pwd OpenCvSharp.dll))
  2. #グレースケールで読み込む
  3. $iplImage = [OpenCvSharp.Cv]::LoadImage((Join-Path $pwd "foo.jpg"), [OpenCvSharp.LoadMode]::GrayScale)
  4. $iplImage.SaveImage((Join-Path $pwd "bar.jpg"))
  5. $iplImage.Dispose()
続いて、②のコード
  1. [void][System.Reflection.Assembly]::LoadFrom(( Join-Path $pwd OpenCvSharp.dll))
  2. #グレースケールに変換
  3. $srcIplImage = [OpenCvSharp.Cv]::LoadImage((Join-Path $pwd "foo.jpg"))
  4. $dstIplImage = New-Object OpenCvSharp.IplImage( $srcIplImage.Size, [OpenCvSharp.BitDepth]::U8, 1)
  5. [OpenCvSharp.Cv]::CvtColor($srcIplImage,$dstIplImage, [OpenCvSharp.ColorConversion]::BgraToGray)
  6. $dstIplImage.SaveImage((Join-Path $pwd "bar.jpg"))
  7. $srcIplImage.Dispose()
  8. $dstIplImage.Dispose()

0 コメント: