2013-04-12 15 views
12

私はこのような何かを実装しようとしています:http://www.youtube.com/watch?v=zjxWpKCQqJc android。ここでAndroid OpenCVオブジェクト検出

私のコード:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) { 
    Mat novo = new Mat(); 
    Mat resp = new Mat(); 
    Mat homer = new Mat(); 

    //resp = inputFrame.gray(); 
    novo = inputFrame.gray(); 

    Mat lido = new Mat(); 
    try { 
     lido = Utils.loadResource(this, R.drawable.homer); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    Imgproc.cvtColor(lido, homer, Imgproc.COLOR_RGB2GRAY); 

    FeatureDetector surf = FeatureDetector.create(FeatureDetector.FAST); 

    MatOfKeyPoint keypointsHomer = new MatOfKeyPoint(); 
    MatOfKeyPoint keypoints = new MatOfKeyPoint(); 

    surf.detect(homer, keypointsHomer); 
    surf.detect(novo, keypoints); 

    DescriptorExtractor SurfExtractor = DescriptorExtractor.create(FeatureDetector.SURF); 

    Mat descriptors = new Mat(); 
    Mat homerDescriptors = new Mat(); 

    SurfExtractor.compute(novo, keypoints, descriptors); 
    SurfExtractor.compute(homer, keypointsHomer, homerDescriptors); 

    DescriptorMatcher m = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE); 
    MatOfDMatch matches = new MatOfDMatch(); 

    m.match(descriptors, homerDescriptors, matches); 

    Features2d.drawMatches(novo, keypoints, homer, keypointsHomer, matches, resp); 

    return resp; 
} 

、私は次のエラーました:私はこのようなキーポイントを描画しようとした場合https://dl.dropboxusercontent.com/u/2345114/error_android.png

を:

Features2d.drawKeypoints(novo, keypoints, resp); 
Features2d.drawKeypoints(homer, keypointsHomer, resp); 

の両方が正常に動作します! 私は間違って何をしていますか?

答えて

3

私はついにそれを終えました!

最終結果をリンクしています。

Simpson Detector (OpenCV)

私は、これはあなたがそのプロジェクトの詳細を表示し、ソースコードをダウンロードすることができGoogle Playの、いくつかの方法で役立ちます願っています。私に電子メールをお送りください。


別の方法で問題を四捨五入しました。 私はFeatures2d.drawMatchesがAndroidで動作しないと思います。おそらく、JVMとアンドロイドには存在しないコンポーネントでのみ動作します。誰かが確認できたら、私は感謝しています。

Googleはアプリを削除し、理由を言わなかった! !=( しかし、ソースコードを自分のサイト上のAPKと一緒に提供されています

quintao.info


結果:https://www.youtube.com/watch?v=h2KHje-Pf10

出典:github.com/raphaelquintao/SimpsonDetector

私は助けを願って

+4

問題を自分で解決した場合は、解決策を投稿してくださいだった?また、あなたのリンクはもう働きません。あなたのアプリケーションはGoogleプレイでもう利用できないようです。 – pocmo

+1

私はそうしました。私はなぜアプリがGoogleプレイから削除されたのか分からないが、私のウェブサイトには、ソースコードへのリンクがあり、apkが含まれています。 http://quintao.info 私は助けになることを願っています! = D –

+0

ねえ、あなたがそこでやった素晴らしい仕事!異なるシンプソンの人々の違いをどうやって作ったのですか?私はあなたの検出器のような何かをしようとしているが、車の部品です。私はステアリングホイールと車輪の違いを作る必要があります。私に何かお勧めしますか? – definera