プログラミング言語ElixirにもOpenCVを使えるようにするバインディングEvisionがあります.ElixirにおけるJupyter NoteにあたるLivebookでEvisionを使う方法について紹介します.
Livebookインストール方法
下の Run on your machine で Mac もしくは Windows を選ぶか,Run in the cloud の Run on Hugging Face を選ぶ,あるいは,Linux等の場合は,check our READMEを選んで,Dockerで実行します.
Livebook
下記で + New notebook とします.
Evision実行
Reconnect and setup をクリックして,下記を入れて実行します.
Mix.install([:evision, :kino])
これにより,Evisionと,Livebookで画像等を表示するプラグインであるKinoをインストールします.
正常に終了した後で,SectionのEvaluateのところに下記を入れて実行します.
Evision.imread("(お好きな画像へのPATH)")
基本的にcv.(メソッド名)
と書くところをEvision.(関数名)
とすれば,OpenCVプログラマであれば,大体直観的に動かせると思います.
Evisionの仕組み
Evisionの仕組みって結構巧みにできています.OpenCVのソースコードを読み込んで,Pythonバインディングのコードをパースすることで,インタフェースとC++ライブラリの呼び出すコードを取得し,ElixirとC++FFIのコードを自動生成するというような離れ技をやっているように思います.すごい技術力ですね!