2011-07-12 15 views
3

イメージのイメージパターンを探すことができるiphoneアプリを実行する必要があります。 (sthのようなthisopenCVを使ってiPhoneでオブジェクトを検出していますか?テンプレートマッチングやハァー?

私は唯一のオプション私は、objectiveCのために移植されているopencvでテンプレートマッチング機能を使用するために持っていると感じる。

私は、this githubコードからobjectiveCの簡単なopencvプロジェクトの優れた出発点を発見しました。

しかし、openCVではエッジ検出と顔検出機能しか使用していません。私は、テンプレートマッチング関数 - "cvMatchTemplate"を、objectiveC for iPhoneで使用するobjectiveCの例が必要ですか?

以下は私がこの時点で持っているコードです:(少なくとも私にはエラーはありませんが、コードのこの部分は完全に黒い画像を返す、一致した領域が明るくなる結果画像を期待していますか?

IplImage *imgTemplate = [self CreateIplImageFromUIImage:[UIImage imageNamed:@"laughing_man.png"]]; 
    IplImage *imgSource = [self CreateIplImageFromUIImage:imageView.image];   
    CvSize sizeTemplate = cvGetSize(imgTemplate); 
    CvSize sizeSrc = cvGetSize(imgSource);  
    CvSize sizeResult = cvSize(sizeSrc.width - sizeTemplate.width+1, sizeSrc.height-sizeTemplate.height + 1); 
    IplImage *imgResult = cvCreateImage(sizeResult, IPL_DEPTH_32F, 1); 
    cvMatchTemplate(imgSource, imgTemplate, imgResult, CV_TM_CCORR_NORMED); 
    cvReleaseImage(&imgSource); 
    cvReleaseImage(&imgTemplate);   
    imageView.image = [self UIImageFromIplImage:imgResult]; 
    cvReleaseImage(&imgResult); 

p/s:または、cvHaarDetectObjectsを使用してオブジェクトを認識しようとしますか?

+0

ハイテクを使用すると、1つのタスク – Rajneesh071

+0

そのこんにちは申し訳ありませんが私はあまりにも長い間、この上で作業を停止している – Rajneesh071

+0

動作していないで私を助けることができる... – mkto

答えて

5

cvMatchTemplateの結果は、32ビットの浮動小数点画像です。結果を表示するには、符号なし文字の8ビット・イメージ(IPL_DEPTH_8U)に変換する必要があります。

CV_TM_CCORR_NORMEDメソッドは[0、1]の間の値を生成し、cvConvertScaleはスケーリングと型変換を行う簡単な方法を提供します。あなたのコードに次を追加してみてください:

IplImage* displayImgResult = cvCreateImage(cvGetSize(imgResult), IPL_DEPTH_8U, 1);  
cvConvertScale(imgResult, displayImgResult, 255, 0); 
imageView.image = [self UIImageFromIplImage:displayImgResult]; 
+0

こんにちはジェフ、私は仕事に戻ってときに私はそれを試してみるだろう答えのためのおかげで。私が投稿したYouTubeリンクに似た何かを達成するために、私はmatchtemplateに固執する必要がありますか、または私はcvHaarDetectObjectを調べるべきですか? – mkto

+0

こんにちはジェフ、あなたのポインタのおかげで!私は最終的にopencvによって返されたいくつかの意味のあるパターンを見ることができます(ここでそれらを見ることができます:http://encryptedpixel.wordpress.com/2011/07/13/346/)。私はそれらのパターンを分析する方法を知っている別の質問を作成しました:http://stackoverflow.com/questions/6673684/how-to-analyze-results-returned-by-opencvs-cvmatchtemplate答えがあれば、ありがとう! – mkto

+1

ちょうどそのビデオを見るための変更がありました。私は別のアプローチをお勧めします。私はあなたがSIFTやSURF機能を使ったオブジェクト認識型のアプローチを使って、より良い結果を得られると思います。これらは、スケール、ローテーションに対するいくつかの堅牢性を提供し、テンプレートマッチングよりもはるかに差別的です。 – jeff7

関連する問題