USBカメラをつないでみる

世の中にごまんとブログはあるので、適当に参考にする。

(35連休)4日目:Raspberry Pi(OpenCVのインストール〜リアルタイム顔認識) - hsuetsugu’s diary

OpenCVをapt-getする。結構大きいな。。。。

luvcviewもあっけなく動作したので、まずはUSBカメラの動作検証までは完了。

 

次は、OpenCVで1フレームごとのキャプチャする。これも世の中にごまんとコードがある。ここで、はまった。python-opencvをインストールしても、またしてもpython3では動作しない。python2.7では動作する。

 

どうやら以下のブログを読むとそもそもOpenCVそのものが ver2ではpython2.7しかサポートしていなかったらしい。よって、OpenCV3をpython3にバインドする、ということを自前でやる必要がある。


できなくもないが、そこまでしてpython3に拘っても面倒なので、ここはpython2.7であきらめることにする。そのうちだれかaptパッケージで用意してくれるさ。

 

ページ先頭のブログのサンプルをpython2.7で実行すると、以下のような予想外のエラーが出る。どうもVNC接続をしている先に表示できない。

f:id:ken_miyashita:20160824233528p:plain

 あたっていた。HDMI画面には普通に表示できた。まあVNCOpenGLは無理だから、cv.NamedWindow() で作るウインドウの調整でなんとかできるか試してみる。おかしい。cv.NamedWindow() は引数に明示しない限りOpenGL使わないはずだが、引数なしのデフォルトでも失敗。

 

仕方ないので、以下を参考にしてなつかしのMESAを入れる。まさかこの期に及んでMESAのお世話になるとは。

Raspberry PiにOpenCVを導入してキャプチャするまでと、トラブルシューティング - Qiita

あれ? MESAはすでに入っていた。ということはこれでは解決しない?

 

以下のブログで同様のトラブルをx11vncを使って回避している。

OpenCVとTightvncサーバー - 満腹居士 七転八倒の記

 

せっかくTightVNC serverを自動起動するようにしてあるが、いったんそれをOFFにしておき、x11vncを自動起動させる。

デフォルト起動を変更 - 技術の無駄遣い

Raspberry Piでリモート操作できるようにするメモ – 1ft-seabass.jp.MEMO

/home/pi/.config/autostart/x11vnc.desktop を準備した。よし自動起動成功。

 

あれ? vncでキーリピートしない。

Sakura/VPS/x11vnc - Home Server Journal

では「x11vnc -repeatで成功」と言っているのでやってみる。成功。

 

webカメラ + opencv + python + vncでふつうに遊べる環境がやっと整った。