手習ひデジタル信号処理(136) Scilab、IPCVツールボックス、再び

Joseph Halfmoon

前回、ちゃんと「基礎を固める」べしとて2次元のコンボルーション関数convol2dを練習、画像モドキにことさらにソーベルフィルタなどかけてみました。でもね、画像を処理するのであれば、立派な「ツールボックス」が存在するのであります。それも大分以前に一度インストールしたきりになってます。今回はその復活、IPCVとな。

※「手習ひデジタル信号処理」投稿順 Indexはこちら

※Windows11上のScilab2024.0.0およびScilab上のツールボックスを使用させていただいております。(今回より別件シリーズとScilabバージョンを合わせました。)

Image Processing Toolbox

大分以前の以下の回でインストールしたツールボックスがあったのです。

手習ひデジタル信号処理(69) Scilab、ATOMS、モジュール管理

「Image Processing Toolbox」と唱えるツールボックスです。これには立派な解説ページが存在します。

Scilab IPCV

画像処理にとどまらず、Deep Learningの入口付近までいろいろ手習ひできそうな雰囲気をかもしています。

以前の回ではお馴染みの「お猿様」の画像を表示したところで終わってました。

imBaboon = imread(fullpath(getIPCVpath() + "/images/baboon.png"));
imshow(imBaboon);

こんな感じ。showBaboon

Sobelフィルタなどかけてみる

前回、なにやらすごく低レベルなところの動作(信号処理の手習ひだし)を観察してみましたが、上記画像にソーベルフィルタをかけるだけならば、こんな感じ。

filter = fspecial('sobel');
imf = imfilter(imBaboon, filter);
imshow(imf);

えい。これまた見覚えのあるお顔、デジャヴ?sobelBaboon

勿論、他のフィルタだって簡単す。ガウシアン(ぼかし)フィルタでどうよ。

fG = fspecial('gaussian', 5, 0.5);
imG = imfilter(imBaboon, fG);
imshow(imG);

左がオリジナル画像、右がちょいガウシアンであります。ヒゲのあたりとか、目の周りとか比較してくだされ。Normal_Gaussian

画像のフォーマット変換とか解析機能などもあるみたい。まずは白黒画像に変換して、輝度のヒストグラムをとったらどうよ。

imGray = rgb2gray(imBaboon);
scf(0); imshow(imGray);
scf(1); imhist(imGray, 10, 0.8, 'green');

GrayBaboon_histgram

あらたな地平(いや次元か)が広がった感じ。

手習ひデジタル信号処理(135) Scilab、離散二次元畳み込み、前後に一手間いるのよ へ戻る

手習ひデジタル信号処理(137) Scilab、IPCVツールボックス、画像の解析と統計 へ進む