MATLAB,Python,Scilab,Julia比較 第3章 その6【画像操作⑤】

MATLAB,Python,Scilab,Julia比較 第3章 その6【画像操作⑤】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その6【画像操作⑤】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/

はじめに

各ツール、各言語で画像の読み込み、処理、保存の基本的な記載の仕方を確認していく。
今回はScilab。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

使用する画像再掲

太郎くん
太郎くん

今回こそScilabか。
使用する画像の再掲。

ファイル名はdog.jpgとする。

前準備

太郎くん
太郎くん

よくわからんが、MATLABと大体一緒なのでは?
と勝手に思ってる。

フクさん
フクさん

まぁ、結果的にはそうなんだけど、
Scilabはデフォルト機能として画像の読み込み、表示、書き出しはできない。

太郎くん
太郎くん

え?
じゃーどうするの?!

フクさん
フクさん

IPCV(Scilab Image Processing and Computer Vision toolbox)というtoolboxをインストールするとOpenCVベースのAPIが使用できる。
一応、裏でOpenCVが動いているようだ。
ATOMS(AuTomatic mOdules Management for Scilab)の機能を使ってインストール可能。

太郎くん
太郎くん

Scilabのメニューにそういうのがあったような気がする。

フクさん
フクさん

画像処理のカテゴリに該当パッケージがあるんで、それを選択してインストールボタンを押せばOKだ。

太郎くん
太郎くん

とりあえず、インストールはしておいた。

画像読み込み

フクさん
フクさん

まずは画像の読み込み。

-->im = imread('dog.jpg');
太郎くん
太郎くん

MATLAB,Pythonとの差はなさそう。

画像表示

フクさん
フクさん

そして、画像表示。

-->imshow(im);
太郎くん
太郎くん

これだけでいいんだ。
使い方はMATLABと一緒だけど、関数名はOpenCV依存ってことでPython側に似てるね。

画像処理

フクさん
フクさん

次は画像処理。
まずは赤の成分の抽出。

-->im(:,:,(2:3)) = 0;	# G(2番目)、B(3番目)の成分を0にする
-->imshow(im);
太郎くん
太郎くん

あれ?
OpenCVが裏で動いてるってことから、
色の並びはPythonのcv2と同じでBGRなのかと思ったけど、
RGBになるの?

フクさん
フクさん

そうだね。
恐らく、ScilabのIPCVパッケージ内で並び替えをしているのだと思う。

太郎くん
太郎くん

まぁ親切ではあるんだけど、バリエーションが増えるのはなんとも・・・。

フクさん
フクさん

どっちにしても、ここら辺のデータの並びは常に気を付けるべきだろうね。

フクさん
フクさん

そして、左右反転。

-->im = im(:,$:-1:1,:);
-->imshow(im);
太郎くん
太郎くん

なんか$とか入ってる・・・。

フクさん
フクさん

Scilabの要素指定で$は終端を示す。
MATLABのendと一緒と思って良いだろう。
そして、等差数列を指定する並びもMATLABと一緒で
start:step:endになる。
よって、$:-1:1の場合は、
終端から先頭に向かって-1ずつの等差数列になる。
1,2,3,4,5だったら
5,4,3,2,1になる。

太郎くん
太郎くん

まぁ、MATLABを起点に考えればOKそうだから、Pythonと比べたらそれほど悩まないかな

画像書き出し

フクさん
フクさん

そして画像書き出し。
これはシンプル。

-->imwrite(im,'dog2.jpg');
太郎くん
太郎くん

MATLABと一緒か。
引数の並びも一緒だね。

まとめ

フクさん
フクさん

まとめだよ。

  • Scilabで画像処理。
    • IPCVパッケージのインストールが必要。
      • 中身はOpenCV。
  • OpenCVベースなので色の並びがBGRかと思いきやRGB。
  • 終端要素しては$。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました