2013-04-12 57 views
12

Tôi đang cố triển khai một cái gì đó như thế này: http://www.youtube.com/watch?v=zjxWpKCQqJc trên Android.Phát hiện đối tượng OpenCV của Android

Ở đây mã của tôi:

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; 
} 

Và tôi đã nhận được lỗi sau: https://dl.dropboxusercontent.com/u/2345114/error_android.png

Nếu tôi cố gắng vẽ keypoint như thế này:

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

Cả hai hoạt động tốt! Tôi đang làm gì sai?

Trả lời

3

Tôi cuối cùng cũng kết thúc điều đó!

Có liên kết với kết quả cuối cùng.

Simpson Detector (OpenCV)

Tôi hy vọng điều này sẽ giúp bạn một cách nào đó, trên Google Play, bạn có thể xem chi tiết hơn về dự án đó và tải về mã nguồn. Hãy gửi cho tôi một e-mail.


Tôi làm tròn vấn đề theo cách khác. Tôi đoán Features2d.drawMatches không hoạt động trên Android. Có lẽ chỉ hoạt động với JVM và với các thành phần không tồn tại trong Android. Nếu bất cứ ai có thể xác nhận tôi biết ơn.

Google đã xóa ứng dụng và không nói lý do! = ( Nhưng mã nguồn có sẵn cùng với các gói ứng dụng trên trang web của tôi

quintao.info


Kết quả: https://www.youtube.com/watch?v=h2KHje-Pf10

Nguồn: github.com/raphaelquintao/SimpsonDetector

Tôi hy vọng tôi đã giúp

+4

Nếu bạn tự khắc phục sự cố, bạn có nhớ đăng giải pháp nào không là? Ngoài ra: Liên kết của bạn không hoạt động nữa. Có vẻ như ứng dụng của bạn không khả dụng tại Google nữa. – pocmo

+1

Tôi đã làm khác. Tôi không biết tại sao ứng dụng bị xóa khỏi google play nhưng đã được. Trên trang web của tôi có một liên kết đến mã nguồn và gói ứng dụng được bao gồm. http://quintao.info Tôi hy vọng sẽ hữu ích! = D –

+0

Này, công việc tốt đẹp bạn đã làm ở đó! Tôi muốn hỏi bạn làm thế nào bạn tạo ra sự khác biệt giữa những người khác nhau simpson? Tôi đang cố gắng làm một cái gì đó giống như máy dò của bạn nhưng đối với phụ tùng xe hơi. Tôi cần phải tạo sự khác biệt giữa vô lăng và bánh xe. Bạn có gợi ý cho tôi điều gì đó không? – definera

Các vấn đề liên quan