Làm thế nào để thực hiện khử Houghing của một hình ảnh biến đổi Hough?


9

Tôi đang làm việc với mã được tìm thấy tại Rosetta Code để tạo một biến đổi Hough. Bây giờ tôi muốn tìm tất cả các dòng trong một hình ảnh. Để làm như vậy, tôi cần các giá trị ρ và of của mỗi đỉnh trong không gian Hough. Một đầu ra mẫu cho hình ngũ giác trông như thế này:

Không gian

Làm cách nào tôi có thể tìm thấy một tọa độ [θ,] duy nhất cho mỗi 'điểm nóng' có thể nhìn thấy trong không gian Hough?

Câu trả lời:


9

Bạn đang tìm tọa độ của các đỉnh và sau đó sử dụng trục để chia tỷ lệ thành các tọa độ [θ,].

Tùy thuộc vào mức độ ồn của dữ liệu, bạn mong đợi bao nhiêu đỉnh giả và thời gian bạn có, có một vài cách để thực hiện. Dễ nhất là chọn một số mức là một đỉnh thực sự, cắt tất cả dữ liệu bên dưới mức đó và sau đó thực hiện một trọng tâm trên mỗi đỉnh để lấy tâm của nó.

Bạn cũng có thể làm xói / quay số hình ảnh cho đến khi mỗi đỉnh là một pixel.


1
+1 cho câu trả lời chính xác. Làm thế nào để bạn xác định / tính toán center of gravity?
Dipan Mehta

Để có độ chính xác cao hơn, hãy tìm mức tối đa, sau đó khớp một hình parabol với điểm đó và các điểm lân cận của nó, sau đó tìm đỉnh của hình parabol, thường sẽ nằm giữa các pixel.
endolith

2
@endolith - nói chung với Hough biến đổi độ chính xác bị giới hạn bởi việc xác định các cạnh trong hình ảnh ban đầu và 'sự rời rạc' của kết quả trong không gian Hough. Nếu bạn cần một kết quả chính xác hơn, việc quay lại và làm lại biến đổi cho phạm vi tọa độ [θ, ρ] giới hạn hơn để có được độ phân giải cao hơn xung quanh giải pháp khóa học mà bạn tìm thấy
Martin Beckett

@DipanMehta - chỉ cần tính tổng ( giá trị x của từng pixel) và (y ..) sau đó chia cho chiều rộng X, Y của hộp bạn đang tìm kiếm - nhưng hãy xem nhận xét cho endolith
Martin Beckett


2

3×3

Bước thứ hai có thể là tinh chỉnh vị trí cực đại thành độ chính xác của pixel phụ. Điều này có thể được thực hiện bằng cách lắp parabola.

f(x)xpf(x+p)

f(x+p)f(x)+pTf(x)+12pTf(x)+p

Các vectơ sửa lỗi là sau đó

p=f(x)1f(x)

Các dẫn xuất có thể được tính toán từ hình ảnh Hough bằng cách phân biệt hữu hạn .

Lưu ý rằng là ma trận Hessian và là một vectơ 2 (độ dốc ngang và dọc), do đó cũng là một vectơ 2 chỉ định dịch chuyển pixel phụ để có được vị trí chính xác của maximizer cục bộ.f(x)2×2f(x)p

Phương trình trên đôi khi có thể mang lại sự dịch chuyển hơn 1 pixel. Trong trường hợp như vậy, vùng lân cận tối đa hóa không có hình dạng parabol và bạn có thể không muốn thực hiện chỉnh sửa hoặc thậm chí nên bỏ tối đa hóa ứng viên.


0

Có một kỹ thuật rất tốt được phát triển vào giữa những năm 80 bởi Gerig và Klein. Đây là một thủ tục backmapping để phân tích không gian Hough để xác định điểm có khả năng nhất được liên kết với từng điểm cạnh và sau đó xây dựng một không gian Hough thứ hai trong đó ánh xạ của các điểm cạnh tới tham số là một-một thay vì một-nhiều là giai đoạn đầu tiên thông thường. Tôi không có tài liệu tham khảo nào nhưng hãy tìm trong bài đánh giá Hough của Illingworth và Kittler (khoảng 1987?)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.