OpenCvSharp

キャプチャしたIplImageをBitmapに変換すると反転する問題

があったようです。 id:Guernsey:20081206:1228571105 Windowsのビットマップでは左下が原点となっていたりするのが原因らしいです。 cvFlip関数のリファレンスを見ると、 http://opencv.jp/document/opencvref_cxcore.html#decl_cvFlip まさしくWindowsでキ…

OpenCV1.1

OpenCvSharpのOpenCV1.1preへの対応は現在試行錯誤中なのですが、カメラキャリブレーションがうまく動かないため保留にしています。話によるとキャリブレーションは1.1ではもっと簡単にできるようになったとかならないとか。 とりあえずpreが取れるまでは様…

OpenCV Wrappers

OpenCVのラッパーが結構たくさん一覧になっています。http://www.eyegazetracking.com/2008/10/opencv-wrappers.html 今回は.NET Framework向けのラッパーのみに絞って、過去に触ってみた感想を書いてみます。なお、大して時間をかけて使ってみた訳ではない…

卒業研究中間発表

卒業研究の中間報告のプレゼンがありました。おおむね首尾よくいったのではないかと思います。 OpenCvSharpはまさしくこの卒研の為に作り始めたのですが、研究では結局のところOpenCVの機能としては二値化と平滑化ぐらいしか使っておらず、あとは自前でごり…

2DRotationMatrix

OpenCVクラスをCVクラスに名前変更した際、メソッドの先頭の"cv"を取り払ったのですが、そうすると"cv2DRotationMatrix"が"2DRotationMatrix"になって先頭に数字が来てしまい、困ってしまいました。現在とりあえず"_2DRotationMatrix"という名前になっていま…

参照渡しの罠

ラッパーを書いていると当然のようにポインタが山のように出てきます。中でもcvCreateTrackbarは鬼門の一つです。定義は次のようになっています。 CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) ); int cvCreateTrackbar( const char* trackbar…

顔検出

Haar分類機のあたりをラップしました。これを使うと顔の認識などができます (cvHaarDetectObjects)。OpenCVにはあらかじめ学習したデータが同梱されているので、それを利用するとすぐに顔検出を試してみることができます。 以下の画像はヤルタ会談の写真に顔…

OpenCV -> CV

OpenCvSharpの、OpenCVでいうcvなんたら関数の寄せ集めクラスである "OpenCV" クラスを "CV" に名前変更しました。これにより、 IplImage src = OpenCV.cvLoadImage("lenna.png", LoadMode.GrayScale); IplImage dst = OpenCV.cvCreateImage(new CvSize(src.…

cvInpaint

cvInpaintをラップしました。これは画像中に文字などの「いらないもの」があったとき、その部分を消して、消した部分を周りの画素から推定して修復する関数です。 例えば、以下のような画像があるとします。(OpenCVのサンプルから拝借) これに白いペンで塗…

カメラキャリブレーションを実装

カメラキャリブレーション周りの関数を大体実装し終えました。一応後学の為軽くまとめておきます。 キャリブレーションの著名な手法であるZhangの手法では、まず以下のようなパターン画像を、何枚か色々な方向から撮影します。 これをOpenCVに渡してコーナー…

cvUndistort2を実装

かなり久しぶりにOpenCvSharpを更新しました。カメラキャリブレーションの為の関数をちょっとだけ実装しました。http://coderepos.org/share/changeset/20119OpenCvSharpは、OpenCVという画像処理の為のライブラリをC#から扱うためのラッパーです。卒業研究…