前回、ちゃんと「基礎を固める」べしとて2次元のコンボルーション関数convol2dを練習、画像モドキにことさらにソーベルフィルタなどかけてみました。でもね、画像を処理するのであれば、立派な「ツールボックス」が存在するのであります。それも大分以前に一度インストールしたきりになってます。今回はその復活、IPCVとな。
※「手習ひデジタル信号処理」投稿順 Indexはこちら
※Windows11上のScilab2024.0.0およびScilab上のツールボックスを使用させていただいております。(今回より別件シリーズとScilabバージョンを合わせました。)
Image Processing Toolbox
大分以前の以下の回でインストールしたツールボックスがあったのです。
手習ひデジタル信号処理(69) Scilab、ATOMS、モジュール管理
「Image Processing Toolbox」と唱えるツールボックスです。これには立派な解説ページが存在します。
画像処理にとどまらず、Deep Learningの入口付近までいろいろ手習ひできそうな雰囲気をかもしています。
以前の回ではお馴染みの「お猿様」の画像を表示したところで終わってました。
imBaboon = imread(fullpath(getIPCVpath() + "/images/baboon.png")); imshow(imBaboon);
Sobelフィルタなどかけてみる
前回、なにやらすごく低レベルなところの動作(信号処理の手習ひだし)を観察してみましたが、上記画像にソーベルフィルタをかけるだけならば、こんな感じ。
filter = fspecial('sobel'); imf = imfilter(imBaboon, filter); imshow(imf);
勿論、他のフィルタだって簡単す。ガウシアン(ぼかし)フィルタでどうよ。
fG = fspecial('gaussian', 5, 0.5); imG = imfilter(imBaboon, fG); imshow(imG);
左がオリジナル画像、右がちょいガウシアンであります。ヒゲのあたりとか、目の周りとか比較してくだされ。
画像のフォーマット変換とか解析機能などもあるみたい。まずは白黒画像に変換して、輝度のヒストグラムをとったらどうよ。
imGray = rgb2gray(imBaboon); scf(0); imshow(imGray); scf(1); imhist(imGray, 10, 0.8, 'green');
あらたな地平(いや次元か)が広がった感じ。