色々試行錯誤が必要だったのでメモ
#環境
Ubuntu20.4.3LTS
Node-Red
#使いたいのはこちら
https://github.com/justadudewhohacks/opencv4nodejs
#Install
opencv4nodejsにOpenCVの自動Build Scriptが入っているのですが失敗するので、別々にインストールします。
##事前にインストールが必要な物
- git
- cmake
- gcc(これは入っていた)
- g++
Proxyを使う場合はnode、apt-get、gitのProxy設定が必要。
##OpenCV
opencv-4.5.3.tar.gz を github からダウンロード。
https://github.com/opencv/opencv/releases
$ tar xf opencv-4.5.3.tar.gz
$ cd opencv-4.5.3
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
$ make
$ sudo make install
##node-gyp (これは必要かどうか不明)
g++が無いと失敗します?
$ npm install -g node-gyp
##opencv4nodejs
Node-Redのフォルダで作業
$ cd ~/.node-red
$ export OPENCV4NODEJS_DISABLE_AUTOBUILD=1
$ npm i --save opencv4nodejs
#設定
~/.node-red/settings.jsの
functionExternalModulesを trueに設定します。設定後はNode-Redを再起動します。
パレットの管理でnode-red-contrib-image-outputをインストールします。
以下のようなFlowを作ります。
FunctionノードのSetupは以下のようにします。functionExternalModulesがfalseのままだったら、Modulesの設定は表示されません。
あと、コードの部分がこんな感じです。capをReleaseしないとNode-Redが無応答になることがあります。
#実行
Injectorのボタンを押すとUSBカメラから画像を取り込めました。
#参考にした記事