前回は、ScilabのIPCVに含まれるユーティリティツールのうち、以前にちょっとお世話(御厄介、どっちが?)になったものどもを練習。今回はユーティリティツールのうち、過去回で使っていなかった小ネタ・ツールを練習してみたいと思います。前回と打って変わって今回の練習はコマケー話を除き平穏無事。たまにはそういう回もないと。
※「手習ひデジタル信号処理」投稿順 Indexはこちら
※Windows11上の Scilab2024.0.0およびScilab上のScilab IPCVツールボックスを使用させていただいております。
今回練習してみるユーティリティツールども
今回は以下の4つです。
-
- imchoose
- imdistline
- impixelval
- imaddtext
前回、インタラクティブに画像の一部領域を指定するツールどもを使ってみましたが、今回の imchooseも同様なツールです。ただしこのツールは矩形(縦横キッチリ)で指定です。
imdistlineは、インタラクティブに指定した2ピクセル間の距離を表示してくれるもの。
impixelvalは、インタラクティブに画像上の座標とそのピクセルの値を表示します。
imaddtextは、画像の所望の位置に文字列を描き加える関数です。
imchoose
imchoose関数は表示されている画像上でマウスを使って矩形領域を指定し、その座標を得る関数です。処理例が以下に。
Spuffin = imread(fullpath(getIPCVpath() + "/images/puffin.png")); imshow(Spuffin); rec2 = imchoose(); title(string(rec2));
以下は処理例です。赤色の矩形をマウスで操作(対角の2点指定)した後、画像上部のタイトルとしてその矩形 (x座標 y座標 幅 高さ) が表示されているところ。
なお、ここで使われている座標は、「コンピュータ式」で一般的な左上隅を(0, 0)とする座標系のようです。
imdistline
この関数を適用すると2点間の距離を得ることができます。
imshow(Spuffin); dist = imdistline();
距離なので別に座標系が影響あるわけでもないですが、この関数が表示する座標軸は「数学式」の左下が原点になってます。上記とは違いますな。下ともと比べてね。
impixelval
この関数に画像を渡すと、画像表示後、画像上でマウスカーソルの位置の座標とそのピクセルの値をウインドウの左下に表示してくれます。
impixelval(Spuffin);
なお、この関数が表示してくれる座標は、左上原点の「コンピュータ式」です。
imaddtext
入力画像の指定座標に数値で指定のフォントとサイズ、文字で指定の色でテキストを書きこむことができる関数です。
Stext = imaddtext(Spuffin,'Text',100,10,5,6,'blue'); imshow(Stext);
この関数が使っている座標系は左下原点の「数学式」のようです。
コマケー話(原点位置)が関数によってバラバラなのも御愛嬌?そんなもんか。