7

Tôi muốn phát triển ứng dụng sẽ nhận ra đối tượng (như tượng đài hoặc vật gì đó) có mặt trước máy ảnh sử dụng OpenCv và sau đó nó sẽ hiển thị thông tin về nó.OpenCV cho hình ảnh ANDROID so sánh

Vì vậy, câu hỏi là cách nhận dạng đối tượng (như tượng đài hoặc vật gì đó) hình dạng hoặc so sánh với hình ảnh với OpenCV?
Và phương pháp tốt nhất để làm điều này là gì?

Sẽ tốt nếu có một số loại mẫu hoặc hướng dẫn để phát hiện và so sánh đối tượng.

Cảm ơn bạn.

+1

Thuật toán phát hiện đối tượng nào bạn đã xem? Trước tiên, bạn phải quyết định cái nào phù hợp nhất cho ứng dụng của bạn. Tùy thuộc vào thuật toán của bạn, bạn có thể phải sử dụng dữ liệu đào tạo để giúp xác định mô hình mô tả đúng nhất đối tượng bạn muốn phát hiện. Tầm nhìn máy tính là một lĩnh vực rất khó khăn để làm việc trên, và đòi hỏi một sự hiểu biết tốt về khu vực. Nếu bạn mới làm quen với điều này, tôi khuyên bạn nên nhận một số sách giáo khoa. – BDFun

Trả lời

6

Phương pháp tốt nhất cho những gì bạn yêu cầu là sử dụng các thiết bị dò tìm tính năng cục bộ như SIFT, SURF và ORB của OpenCV chẳng hạn.

Bạn cần ít nhất một ảnh từ đối tượng bạn muốn phát hiện. Sau đó, các thuật toán đó có thể so sánh hình ảnh đó với các hình ảnh khác để xem chúng có tương tự hay không.

Đây là tài liệu Tài liệu cho thuật toán.

  • ORB và những người khác:

http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html

  • SURF và SIFT ('nonfree'):

http://docs.opencv.org/modules/nonfree/doc/feature_detection.html

Cách các thuật toán làm việc cho rằng nhiệm vụ là theo sel ect điểm thú vị cho mỗi hình ảnh, và so sánh chúng để xem nếu chúng phù hợp. Nếu tìm thấy nhiều kết quả phù hợp, hầu hết các hình ảnh có cùng một đối tượng là có thể là.

Hướng dẫn (từ Feature Detection và dưới đây):

http://docs.opencv.org/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html

Bạn cũng có thể tìm C++ mẫu liên quan đến chủ đề này ở đây (mẫu cũng nằm trong gói OpenCV tải xuống):

  • ví dụ: "matching_to_many_images.cpp"
  • "video_homography.cpp"

http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/cpp

Android Java mẫu đây (không liên quan mà còn hữu ích):

http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/android

Hoặc Python mẫu đó thực sự là những người đã cập nhật cho này chủ đề (tại thời điểm bài viết này được viết):

http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/python2

Lưu ý cuối cùng, như @BDFun cho biết trong nhận xét, điều này không quan trọng để làm.

Khác - nếu bạn muốn có tổng quan về tính năng phát hiện và mô tả tính năng OpenCV, check this post.

+0

làm thế nào để sử dụng opencv + android? Với NDK android? – nawara

+0

Bạn đã kiểm tra điều này chưa? http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#native-c –

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