OpenCVSharpを使って画像をぼかす(平滑化する)。
たぶん、一部だけぼかすこともできるとは思うけど、やり方がわからないので、まずは全体をぼかす。
ぼかし方は五種類、OpenCvSharp.SmoothTypeで定義されている。
・ BlurNoScale
・ Blur
・ Gaussian
・ Median
・ Bilateral
そのうちの一つ「Bilateral」は例がでて使えなかった。
以下、コード
- [void][System.Reflection.Assembly]::LoadFrom( ( Join-Path $pwd OpenCvSharp.dll) )
- $smooth = 5 # ぼかし率?値が大きいほどぼかしが強い
- # 強い光を当てたみたいな画像になった
- $iplImage = [OpenCvSharp.Cv]::LoadImage( (Join-Path $pwd "foo.jpg"))
- $iplImage.Smooth($iplImage, [OpenCvSharp.SmoothType]::BlurNoScale, $smooth)
- $iplImage.SaveImage((Join-Path $pwd "BlurNoScale.jpg"))
- $iplImage.Dispose()
- # 全体的にぼゃ~って感じ
- $iplImage = [OpenCvSharp.Cv]::LoadImage( (Join-Path $pwd "foo.jpg"))
- $iplImage.Smooth($iplImage, [OpenCvSharp.SmoothType]::Blur, $smooth)
- $iplImage.SaveImage((Join-Path $pwd "Blur.jpg"))
- $iplImage.Dispose()
- # 全体的にぼゃっとしてるけどBlurよりははっきり
- $iplImage = [OpenCvSharp.Cv]::LoadImage( (Join-Path $pwd "foo.jpg"))
- $iplImage.Smooth($iplImage, [OpenCvSharp.SmoothType]::Gaussian, $smooth)
- $iplImage.SaveImage((Join-Path $pwd "Gaussian.jpg"))
- $iplImage.Dispose()
- # 油絵みたい
- $iplImage = [OpenCvSharp.Cv]::LoadImage( (Join-Path $pwd "foo.jpg"))
- $iplImage.Smooth($iplImage, [OpenCvSharp.SmoothType]::Median, $smooth)
- $iplImage.SaveImage((Join-Path $pwd "Median.jpg"))
- $iplImage.Dispose()
- #ぼかし方(平滑化)をBilateralにすると例外が発生してうまくいかない
- #$iplImage = [OpenCvSharp.Cv]::LoadImage( (Join-Path $pwd "foo.jpg"))
- #$iplImage.Smooth($iplImage, [OpenCvSharp.SmoothType]::Bilateral, $smooth)
- #$iplImage.SaveImage((Join-Path $pwd "Bilateral.jpg"))
- #$iplImage.Dispose()
0 コメント:
コメントを投稿