OpenCV

snowleopardにopencv1.0インストール

snow leopardではopencv2.xを使うのが推奨だが、1.0を使いたい人向け。http://opencast.jira.com/browse/MH-3297 まずソースを取ってくる wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/1.0/opencv-1.0.0.tar.gz tar -zxvf open…

OpenCV1.0インストール

Ubuntu10.04にOpenCV1.0入れる。 wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/1.0/opencv-1.0.0.tar.gz tar -zxvf opencv-1.0.0.tar.gz cd opencv-1.0.0 ./configure makeでmakeでエラーが出る ../../cxcore/include/cxmisc.h…

macports selfupdateしたらopencvおかしくなった

実行すると "libhighgui.1.dylib requires version 63.0.0 or later, but libjpeg.62.dylib provides version 9.0.0" portsのアップデートでlibjpegのバージョンが合わなくなったらしい http://d.hatena.ne.jp/yatt/20100126/1264510741 sudo port deactivat…

OpenCV1.0ソースからインストール

まずOpenCV2.0をsudo make uninstallした。 wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/1.0/opencv-1.0.0.tar.gz tar -zxvf opencv-1.0.0.tar.gz cd opencv-1.0.0/ ./configure make sudo make install

screen上でカメラを使おうとするとInternal error (couldn't create new video channel)となる

知らなかった。今までこれが出たらマシンがおかしくなったんだと思って再起動してたけど、TerminalからscreenごしにCvCreateCameraCapture()すると出てしまうものらしい 参考 : http://robotics.naist.jp/member/old_members/2008/ato-a/wikisource/OpenCV O…

haarcascadeの学習(2)

flickrから5000枚ほど画像をダウンロードしてくる。背景画像として使う。 橋本商会 » Flickrダウンローダを作った 背景画像には、認識したいパターンが写っていてはならない。映っていないものだけを残す。 選別した背景画像はbgフォルダに置いておく 背景画…

目や鼻や口を認識する

http://sourceforge.net/projects/opencvlibrary/ のsubversionリポジトリに、右目・左目・両目・鼻・口にマッチするhaarcascade.xmlがある 持ってくる mkdir ~/tmp cd ~/tmp svn co https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary openc…

アニメ顔認識2

http://d.hatena.ne.jp/shokai/20090730/1248910784 にコメントをもらったので新しい方のhaarcascadeでやってみた wget http://www.udp.jp/cv/haarcascades/haarcascade_animeface2.xml ./haartest -p -c haarcascade_animeface.xml -i 1g2gxbeCLggce8crrTzs…

haarcascadeの学習(1) ツールのビルド

http://lab.cntl.kyutech.ac.jp/~kobalab/nishida/opencv/01.html wget http://softlayer.dl.sourceforge.net/project/opencvlibrary/opencv-linux/1.0/opencv-1.0.0.tar.gz tar -zxvf opencv-1.0.0.tar.gzapps/haartraining/src/cvhaartraining.cpp の icvC…

haartestをUbuntuで動かす

Makefileの修正だけでコンパイルできた Makefile SRC = haartest.cpp DST = haartest prefix=/usr INCPATH=$(prefix)/include LIBPATH=$(prefix)/lib CV_LIBS= -lcv -lcvaux -lcxcore -lhighgui BOOST_LIBS= $(LIBPATH)/libboost_program_options-mt.a all: …

アニメ顔認識

これ使った アニメ顔の検出とキャラクターの分類 - デー haarcascadeのxmlファイルと素材を持ってきて、haartestにかける wget http://www.udp.jp/cv/haarcascades/haarcascade_animeface.xml wget http://s3.amazonaws.com/twitter_production/profile_back…

haarcascadeのテスト用コマンドラインツール

boost::program_optionsとOpenCVでhaarcascadeファイル、入力画像、出力画像、プレビューありなし等を選んで画像1枚から顔などの位置を認識するコマンドラインツール作った。サーバーに置いてスクリプト言語から呼び出せばいいのではないでしょうか。リポジ…

OpenCV1.1がビルドできなかった

sudo port uninstall opencv wget http://jaist.dl.sourceforge.net/sourceforge/opencvlibrary/opencv-1.1pre1.tar.gz tar -zxvf opencv-1.1pre1.tar.gz cd opencv-1.1.0 ./configure CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib" make sud…

PlayStation3 eyeでキャプチャして表示

windowsでプレステ3のカメラを使う場合は準備が必要。macはmacamでいけるはず。 準備:VS2008 OpenCVでPlaystation3 eyeを使う 普通のUSBカメラの場合:単純にキャプチャして表示 - 橋本詳解(このコードと比較するとわかりやすい) プロジェクトごとupした …

単純にキャプチャして表示

これを基本形にしてカスタムする #include <stdio.h> #include <highgui.h> int main(int argc, char** argv) { bool isStop = false; CvCapture *capture; IplImage *image; char winNameCapture[] = "Capture"; capture = cvCreateCameraCapture(0); if(capture == NULL){ prin</highgui.h></stdio.h>…

VS2008 OpenCVでPlaystation3 eyeを使う

プレステ3のカメラをWindowsのC++/OpenCV環境で使う。Macはmacamで動くし、linuxも普通にカメラとして使う事はできるらしいけど windowsはAlexさんの作ったドライバを入れるとDirectShowのソースとして使えるようになる。どうやらFlashからwebcamとしては使…

ShaperCV使う時の注意

C++でOpenCVをDLL化する方法があるから俺はもう使わないけど、詰まった所を書いておく 開発は2003年で止まっている、cxcoreの配列系の関数がまるごと無い このへん http://opencv.jp/opencv-1.0.0/document/opencvref_cxcore_init.html#cxcore_arrays_alloc_…

CvImage/IplImageからSystem::Drawing::Bitmapへの変換

できた なんで^を付けるのかとかそこらへんの作法がわからん System::DrawingのDLLへの参照を追加してから using namespace System::Drawing; グローバル変数を作っておく private: System::Drawing::Bitmap^ shadow; C#側のためのアクセサ public: System::…

CvImageからBitmapへの変換

highgui使いたくないので、OpenCVで画像処理して結果は.NETに持ってこよう。 public Bitmap cvImageToBitmap(CvImage img) { return new Bitmap(img.Size.width, img.Size.height, img.Size.width * 3, PixelFormat.Format24bppRgb, img.getPixelAddr(0, 0, …

SharperCVでカメラ表示画面を出す

これ http://shokai.org/projects/opencv-study/index.cgi/file/bafff35d077a/SimpleCapture/image.cpp #include <stdio.h> #include <highgui.h> int main(int argc, char** argv) { CvCapture *capture; IplImage *frameImage; char windowNameCapture[] = "Capture"; capture </highgui.h></stdio.h>…

OpenCV インストールしたけどLogicoolのカメラが動かない

Dell insprion mini9でやったのと同じ http://d.hatena.ne.jp/shokai/20090220/1235155743 sudo apt-get install libcv-dev sudo apt-get install libcv1 sudo apt-get install libcvaux-dev sudo apt-get install libcvaux1 sudo apt-get install libhighgu…

OpenCVインストール、顔認識などサンプル動かす

opencvインストール - 橋本詳解と同じ。 sudo apt-get install libcv-dev sudo apt-get install libcv1 sudo apt-get install libcvaux-dev sudo apt-get install libcvaux1 sudo apt-get install libhighgui-dev sudo apt-get install libhighgui1 sudo apt…

cvRunningAvgを使って背景統計を取り背景差分する

背景差分法で背景と物体を分離するコードで、opencv.jp - OpenCV: 背景統計量の累積(Accumulation of Background Statistics)サンプルコード -が大変すばらしかったので自分用に使いやすいようにいじくりまわした。 #include <cv.h> #include <highgui.h> #include <ctype.h> #includ</ctype.h></highgui.h></cv.h>…

赤色領域を検出(4) 輪郭を囲む

OpenCVプログラミングブック p.154に2値画像の輪郭抽出がcvFindContourでできて、cvDrawContours で線で囲えると書いてあったので、ちょうど赤色領域抽出でカメラから2値画像を作っていたのでコードを合体させた。 輪郭抽出前に収縮・膨張でノイズを減らして…

赤色領域を検出(3) 重心も計算

opencvプログラミングブックのp.61肌色領域の重心を検出していたので、同じようにやってみた。この本は説明はわかりやすいけどプログラムが省略されてて肝心の変数宣言の部分や定数define部分が書いてないので大変困る。 まあドキュメント読めば十分わかるか…

収縮・膨張で砂嵐ノイズフィルタ

cvErode()とcvDilate()を使うと砂嵐ノイズを消せる。効果はそれぞれ収縮と膨張で、収縮→膨張とすると小さなゴミは消えるし、膨張→収縮でひびわれは押し潰される。 いや2回やらなくても良い気もしてきた。 これが こうなる こういうas3のColorMatrixFilterみ…

肌色領域検出

参考 http://pw137.cs.ie.u-ryukyu.ac.jp/repos/complex_back/OpenCV_sample/tutorial_03.cpp opencvプログラミングブック p.59 グレースケールで背景差分取っておく(背景差分 - 橋本詳解) BGRをHSVに変換してからHueのみを見て肌色に近い範囲のピクセルの…

aviファイルの読み込み

動画ファイル(aviファイル)の読み込み - OpenCV@Chihara-Lab. こうしておくとカメラの無いマシンでもtest.aviを読み込んでテストできるので便利 CvCapture *capture = NULL; //capture = cvCreateCameraCapture(0); // カメラ読み込み capture = cvCapture…

赤色検出

MacbookのWindowsXPでVMWareで動かしてるUbuntuでも動いた。カメラがQV-40で暗すぎるので認識部分の数値いじってある colortrack.cpp #include <stdio.h> #include <highgui.h> #include <cv.h> IplImage *img = NULL; IplImage *imgR, *imgG, *imgB, *imgThreshold_R, *imgThreshold_G</cv.h></highgui.h></stdio.h>…

赤色領域を検出(2)

前の方法だと光、影、カメラの種類などの環境変化に弱かったので、もっと相対的に赤を検出する。 cvDiv()という2つの画像の全ピクセルの商を一発で求める関数があるので、「赤の要素が青・緑それぞれの1.5倍あり、さらに赤が100以上の値のピクセル」を赤とみ…