OpenCV + Webカメラ in Linux
Webカメラを使った画像処理のプログラムをlinuxで作りたかったのでOpenCVからWebカメラを使えるの環境を作った。
Windows上では簡単にできていたのに、色々と苦労した。
とりあえず,サンプルプログラムをそのまま動かしてみたけど,動かない。
lsusbコマンドでWebカメラが認識してるか確認してみたが,正常に認識してそう。
/usr/sbin/lsusb Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 006: ID 046d:082d Logitech, Inc. HD Pro Webcam C920 Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 003: ID 0461:4d0f Primax Electronics, Ltd HP Optical Mouse Bus 002 Device 004: ID 04f2:1060 Chicony Electronics Co., Ltd Bus 002 Device 005: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
いろいろ調べて見るとlibv4lが入ってる状態でOpenCVを入れないと行けないみたい。
さかな前線 » Linuxでの野良ビルドのOpenCVでカメラをちゃんと使うにはlibv4l-devが必要みたい
apt-get install libv4l libv4l-devel
この状態でOpencv2.4.9を入れていく。
cmake -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=RELEASE -DWITH_TBB=ON -DWITH_GTK=ON -DWITH_OPENGL=ON -DWITH_QT=ON -DINSTALL_C_EXAMPLES=ON -DWITH_OPENCL=OFF -DWITH_CUDA=OFF -DWITH_OPENNI=ON -DWITH_UNICAP=ON -DWITH_V4L=ON -DWITH_XINE=ON . make
しかしmakeでエラー。
modules/highgui/cap_libv4l.cppでエラー。
cmakeのオプションに-DWITH_LIBV4L=OFFを入れるとエラーがなくなった。
そのままmake installでサンプルプログラムが動くようになったが、エラーが出力された。
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
でも、一応動いてるからとりあえず今は放置で。
結局libv4lが必要というより、-WITH_V4L=ONになってたらいいのかな?
(前回はエラーが出た時に-WITH_V4L=OFFにしていた。)
【追記】
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
放置してたこのエラーのせいで、Webカメラの解像度が変えられないというちょい重大な問題発生。
v4l−utilsをソースからインストールして,OpenCVでcmakeの-DWITH_LIBV4L=OFFをONにすることで解決。
やっぱりlibv4lは必要だった(手のひら返し)
Github実践入門を買った
Githubを本格的に勉強しようと思って購入。
とりあえず、4章まで読んで6章のPull Requestを試してみた。
5章と7章以降はこれから読んでいく。
pushとpullしか知らなかったけど,branchとかmergeについてわかった気がする。
GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
- 作者: 大塚弘記
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る
Texエラー警告メモ
エラー&警告を適宜メモしていく。
エラー
警告
Overfull \hbox
内容
テーブルはみだしちゃった。
解決策
改行するなり横幅を狭くする。
python numpyのwhereで複数の条件をつける
numpyのwhereで複数条件にするときは、それぞれの条件をちゃんと()でくくる!
初歩的な文法をわかりきってないからこうなる・・・
import numpy as np import scipy as sp import matplotlib.pyplot as plt import sys filename=sys.argv[1] data=np.loadtxt(filename,delimiter=' ', dtype={'names':('code','pow','alpha','k', 'xyz','normal','z','normal2','z2'), 'formats':('S4','S3','S3','i4', 'f8','f8','f8','f8','f8')}) for alpha in np.unique(data['alpha']) : for pow in np.unique(data['pow']) : print data[np.where((data['alpha']==alpha) & (data['pow']==pow))]
WindowsにPython入れてみた。
研究に使うデータ分析のお供にPython環境をWindowsに導入してみた。
Cygwin上に入れてみようとしたけれど、SciPyを導入するのがかなりややこしかったので断念*1。
下記の記事を参考にWindows用のバイナリを使ってインストール。
ITエンジニアのためのデータサイエンティスト養成講座(2):データ分析がデキるITエンジニアになるために必要な「道具」を揃える (3/4) - @IT
Scikit-learn という機械学習用ライブラリもインストールして、研究のデータをPCAかけて3次元プロットして遊んでました。
*1:色んな人が試しているけど成功例がなかった・・・。めもめも ...〆(。_。) Python迷走した
はじめました。
アカリクITイベント in 大阪に参加して、謎のモチベーションが湧いてきたのでブログを開設してみた。
そのうち飽きると思いますがどうぞよろしくおねがいします。