2008-11-01から1ヶ月間の記事一覧

卒業研究中間発表

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

現在進行形で雪がすごいので、最近買ったデジカメで撮ってみました。この冬初めての積雪です。 ちょっと前の風景。 ほんの昨日までこんな風景だったのが、朝起きてみると別世界。この驚きと感動はいくつになっても新鮮です。雪降らない所に住んだら多分気が…

2DRotationMatrix

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

C++/CLIのキーワードページを作成

「はてなダイアリー市民」とやらに最近なりまして、キーワードの作成ができるようになったので、作ってみました。C++/CLIこのページが無かったなんて・・・C++/CLI流行ってないんですかね。個人的には.NETの言語の中でも最強クラスだと思うんですが。明示的…

参照渡しの罠

ラッパーを書いていると当然のようにポインタが山のように出てきます。中でも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.…

交響曲 第9番「新世界より」第2楽章 [Symphony No. 9 in E Minor "From the New World": II. Largo (Antonín Dvořák)]

MML

前々から気になっているのですが、Firefox, Opera, Safariといったブラウザだと、MMLの再生時にぶつぶつと突っかかるような感じがあるのですが、IEだとほぼ問題なく再生されます。なんなんだろう? $tone = @3 @e1,0,180,64,12 @w50; $tempo = t50; $rit1 = …

cvInpaint

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

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

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