Các hàm HoughLines hoặc HoughLinesP trong OpenCV có trả về danh sách các dòng theo thứ tự tích lũy như hàm HoughCircles không? Tôi muốn biết thứ tự của các dòng. Nó cũng sẽ rất tiện dụng để có được một giá trị tích lũy cho các dòng để một ngưỡng thông minh và thích ứng có thể được sử dụng thay vì một ngưỡng cố định. Là giá trị đặt hàng hoặc giá trị tích lũy có sẵn không có rewriting OpenCV myself?OpenCV Hough dòng mạnh nhất
Trả lời
HoughTransform lines orders giảm dần theo số phiếu bầu. Bạn có thể thấy mã here
Tuy nhiên, số phiếu bầu bị mất khi hàm trả về - cách duy nhất để có nó là sửa đổi OpenCV.
Tin vui là không quá phức tạp - tôi đã tự làm một lần. Đó là một metter phút để thay đổi đầu ra từ vector<Vec2f>
thành vector<Vec3f>
và điền thông số cuối cùng với số phiếu bầu.
Ngoài ra, bạn phải sửa đổi CvLinePolar để thêm thông số thứ ba - hough được thực hiện trong C
và có một trình bao bọc trong số C++
, vì vậy bạn phải sửa đổi cả triển khai và trình bao bọc.
Mã chính để sửa đổi là ở đây
for(i = 0; i < linesMax; i++)
{
CvLinePolar line;
int idx = sort_buf[i];
int n = cvFloor(idx*scale) - 1;
int r = idx - (n+1)*(numrho+2) - 1;
line.rho = (r - (numrho - 1)*0.5f) * rho;
line.angle = n * theta;
// add this line, and a field voteCount to CvLinePolar
// DO NOT FORGET TO MODIFY THE C++ WRAPPER
line.voteCount = accum[idx];
cvSeqPush(lines, &line);
}
Cảm ơn bạn đã thực hiện điều đó rõ ràng và chỉ cho tôi mã. Tôi đang sử dụng phiên bản xác suất và đi qua mã, nó sẽ là tốt đẹp để mang lại linesMax ra quá để tăng tốc độ những thứ lên. – zzzz
Xác suất nằm trong cùng một tệp, tôi nghĩ bạn đã tìm thấy nó. Cách tiếp cận khác nhau trong tìm kiếm dòng có nghĩa là số phiếu bầu không có liên quan như trong cổ điển H. Miễn là một dòng có số phiếu yêu cầu tối thiểu, nó được đẩy trong hàng đợi kết quả. Không phân loại nào được thực hiện. – Sam
Xin chào, Xin lỗi vì đã sửa lại chủ đề này, nhưng bạn có ý tưởng hwo để có được giá trị tích lũy trong biến đổi hóc môn không? Tôi không hoàn toàn chắc chắn nơi trong các ma trận tích lũy các phiếu của dòng là. – Aeefire
- 1. Biến đổi Hough tổng quát và OpenCv
- 2. Cách kiểm tra sự gần nhau của các dòng (Biến đổi Hough) trong OpenCV
- 3. Biến đổi hough để phát hiện iris trong OpenCV
- 4. OpenCV: Sử dụng Hough Circle Transformation để phát hiện iris
- 5. Phát hiện các dòng Opencv trong đối tượng
- 6. Trích xuất các đoạn đường từ hough biến đổi
- 7. Biến đổi Hough với PHP
- 8. Mạnh mẽ tìm thấy N vòng tròn có cùng đường kính: thay thế cho bruteforcing Hough transform threshold
- 9. Phát hiện đường dây OpenCV nói chung
- 10. API bản đồ nào là mạnh nhất?
- 11. Đặt hàng SQL bằng LIKE mạnh nhất?
- 12. Hough biến đổi trong MATLAB mà không sử dụng chức năng hough
- 13. Các dòng nổi bật không được phát hiện bởi Hough Transform
- 14. Phát hiện vòng kết nối hough android
- 15. Tìm hàng xóm gần nhất - OpenCV
- 16. Python openCV phát hiện các đường song song
- 17. Phát hiện rãnh mở OpenCV
- 18. Làm thế nào để thực hiện Chuyển đổi Hough?
- 19. Phát hiện biểu tượng bằng cách sử dụng OpenCV
- 20. Ý nghĩa của dòng mã sau trong opencv là gì?
- 21. Vẽ đường vuông góc với một dòng trong opencv
- 22. Phát hiện đường ngang với OpenCV
- 23. Giải pháp nút CSS chỉ mạnh mẽ nhất?
- 24. JavaScript AJAX Framework nào mạnh mẽ nhất và rất nhẹ?
- 25. Phương pháp mã hóa tốt nhất + mạnh nhất cho cơ sở dữ liệu
- 26. trọng tuyến tính bình phương nhỏ nhất trong OpenCV
- 27. Làm thế nào để mạnh mẽ chiều cao dòng trong css, không có streches?
- 28. Phát hiện hình dạng tứ giác từ tập hợp ngẫu nhiên của các dòng phân đoạn
- 29. dòng dài nhất trong vim?
- 30. Công cụ dòng lệnh mạnh mẽ và thân thiện cho .NET?
Tốt một. Tôi luôn luôn giả định các dòng được đưa ra theo thứ tự. Và giả định này cho đến nay đã phù hợp với kết quả của tôi ... Tuy nhiên, nó sẽ là tốt đẹp để chắc chắn. –