Tôi có một tập hợp các điểm ảnh loại (tọa độ) openCV Point2f. Tôi muốn tìm 4 người hàng xóm gần nhất của mỗi điểm trong bộ đó. Có chức năng tích hợp cụ thể nào trong openCV để làm điều này hay tôi nên đo khoảng cách giữa mỗi điểm và quyết định bốn điểm gần nhất?Tìm hàng xóm gần nhất - OpenCV
Trả lời
Bạn có thể sử dụng bộ phân loại lân cận k gần nhất CvKNearest
. Sau khi bạn đã đào tạo trình phân loại với tất cả các điểm của mình, bạn có thể nhận được k
hàng xóm gần nhất với chức năng gọi số CvKNearest::find_nearest
.
This hướng dẫn có thể hữu ích.
Nó cung cấp một ví dụ về đào tạo (như xa như tôi biết cách sử dụng trình KNearest
constructor hoặc train()
phương pháp; kiểm tra documentation) và nhận ra mục (bằng cách sử dụng, như @sietschie nêu find_nearest()
phương pháp).
find_nearest()
mất một giá trị int k
đại diện cho số tiền cần thiết của các nước láng giềng trên đó phân loại được dựa, nhãn k hàng xóm có thể được trả lại tùy chọn thông qua các tham số neighborResponses
, như lấy từ find_nearest()
tài liệu liên quan trước đó:
neighborResponses - Giá trị đầu ra tùy chọn cho các hàng xóm tương ứng .
nơi, một lần nữa như một phần của tài liệu, neighbors
là:
xóm - con trỏ đầu ra tùy chọn để người hàng xóm vector mình.
Tôi không có kinh nghiệm với những thông số, tuy nhiên cung cấp tôi đã hiểu một cách chính xác, xóm cung cấp giá trị thực tế những người hàng xóm, trong khi neighborResponses cung cấp nhãn của họ.
Mã sau sẽ giúp tìm những người hàng xóm gần nhất của một điểm đã chọn trong số các điểm.
vector<Point2f> pointsForSearch; //Insert all 2D points to this vector
flann::KDTreeIndexParams indexParams;
flann::Index kdtree(Mat(pointsForSearch).reshape(1), indexParams);
vector<float> query;
query.push_back(pnt.x); //Insert the 2D point we need to find neighbours to the query
query.push_back(pnt.y); //Insert the 2D point we need to find neighbours to the query
vector<int> indices;
vector<float> dists;
kdtree.radiusSearch(query, indices, dists, range, numOfPoints);
chỉ mục cho các chỉ mục của hàng xóm và khoảng cách được chọn cung cấp khoảng cách cho những người hàng xóm được chọn.
Dưới đây là ví dụ nhỏ thế nào để tìm được 3 điểm gần nhất với (370.464):
#include "opencv2/flann/miniflann.hpp"
flann::KDTreeIndexParams indexParams;
flann::Index kdtree(Mat(cloud2d).reshape(1), indexParams);
vector<float> query;
query.push_back(370);
query.push_back(464);
vector<int> indices;
vector<float> dists;
kdtree.knnSearch(query, indices, dists, 3);
// cloud2d[indices[0]] -- is your first point now
// cloud2d[indices[1]] and cloud2d[indices[2]] -- is your 2nd and 3rd point
Xin lưu ý chức năng mà ứng xử điên nếu một số điểm có NAN tọa độ, điều này có thể là trường hợp nếu bạn chia cho 0.0 một nơi nào đó trước đây.
Làm thế nào để bạn thiết lập cloud2d. Tôi có tiêu chuẩn :: vector
thử vector
- 1. Hàng xóm gần nhất sử dụng Quaternions
- 2. Tìm n Hàng xóm gần nhất cho điểm đã cho bằng cách sử dụng PostGIS?
- 3. Hàng xóm gần nhất Tìm kiếm bằng cách sử dụng Biểu đồ Voronoi
- 4. Ảnh chụp màn hình có lập trình xuyên tạc gần hàng xóm gần nhất
- 5. Cấu trúc dữ liệu tốt nhất cho hàng xóm gần nhất trong 1 chiều
- 6. Tìm kiếm hàng xóm Erlang
- 7. Là cây k-d hiệu quả cho tìm kiếm kNN. k gần nhất hàng xóm tìm kiếm
- 8. Thuật toán tốt cho vấn đề hàng xóm gần nhất trong hai chiều là gì?
- 9. Tìm hàng xóm trong mảng hai chiều
- 10. Làm cách nào để mở rộng truy vấn SQL này để tìm k hàng xóm gần nhất?
- 11. Hai thuật toán để tìm hàng xóm gần nhất với băm nhạy cảm về địa phương, cái nào?
- 12. Thuật toán để tìm tất cả các điểm trong tập A Một hàng xóm gần nhất trong bộ B
- 13. Khoảng cách tách vòng tròn - Vấn đề hàng xóm gần nhất
- 14. Hàng xóm gần nhất Postgresql k (KNN) trên khối nhiều chiều
- 15. Tìm phần tử gần điểm nhấn nhất
- 16. K Thuật toán lân cận gần nhất
- 17. Tìm kiếm lân cận gần nhất trong D3
- 18. Tìm ngày gần nhất trong SQL Server
- 19. gần Neighbor Tìm kiếm: Python
- 20. Tìm số gần nhất trong một mảng
- 21. C# Tìm số gần nhất trong Array
- 22. tìm ra giờ tiếp theo gần nhất
- 23. 2D tìm kiếm lân cận gần nhất cho các điểm di chuyển
- 24. Tạo 'hàng xóm' cho người dùng dựa trên xếp hạng
- 25. Chọn các hàng SQL theo ngày gần đây nhất
- 26. Tìm giá trị gần nhất trong danh sách đơn đặt hàng
- 27. Cách tìm giá trị gần nhất trong bảng tra cứu?
- 28. MySQL CHỈ THAM GIA hàng gần đây nhất?
- 29. Làm cách nào tôi có thể sử dụng một thước đo khoảng cách khác cho người hàng xóm gần nhất trong Java/Weka?
- 30. Canvas HTML5: có cách nào để thay đổi kích thước hình ảnh bằng cách "lấy lại hàng xóm gần nhất" không?
URL được yêu cầu/2010/10/k-gần nhất-láng giềng-in-opencv/không được tìm thấy trên máy chủ này. –
Cảm ơn @ JürgenK .; blog dường như đã được tân trang - tôi đã cập nhật url. –
tôi nhận được một thời gian chờ theo yêu cầu của các tài liệu hướng dẫn –