バックナンバーはこちら。
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
カメラキャプチャが可能か?

普段なら次はJuliaの話になるのだろうけど、
カメラキャプチャができる場合は、それの話になるのかな?

Scilabはカメラキャプチャ可能だ。
というかOpenCVが可能だから、
ScilabのIPCVパッケージでも可能という感じだろう。

じゃー、今回はScilabによるカメラキャプチャの回だねー。
Scilabでカメラキャプチャ

Pythonの時と同じく、1フレーム取得したら、左右反転させたものも同時に表示する感じのコードにしている。
function capture_camera()
    avicloseall();
    n = camopen(0);
    while(1)
        im = camread(n);
        // そのまま表示
        b = imdisplay(im,'Press anykey to exit');
        if b == -1
            break
        end
        
        // 左右反転して表示
        b = imdisplay(im(:,$:-1:1,:),'Press anykey to exit.(Mirror)');
        if b == -1
            break
        end
    end
    avicloseall();
    imdestroyall
endfunction
capture_camera();
clear capture_camera;
考察

ちゃんと1フレーム毎にとれて、左右反転できてるね。

Pythonの時はVideoCaptureって関数でカメラデバイスの制御権をもらってた気がするけど、
Scilabの場合は、camopenなんだね。

OpenCVとしてはVideoCaptureというAPIだな、
IPCVとしてはcamopenというAPIにしてるようだな。

まぁ、ここらへんはパッケージ毎のポリシーだから、
仕方のない事だけど、似ているんだったら、もう合わせてもらった方が助かるんだけどなぁ・・・。

これはもうそういうものだとして飲み込むしかないな。
まとめ

まとめだよ。
- ScilabのIPCVでカメラキャプチャ。
- Scilab、IPCVというよりOpenCVの機能。
 
- 基本的にはPythonで実施したことと同じことは可能。
- API名が異なる点に注意。
 
バックナンバーはこちら。
 
 



コメント