Tìm một dòng cụ thể trong một hình ảnh


9

Tôi muốn tìm đường giữa màu xanh lam và màu xám trong hình sau:

nhập mô tả hình ảnh ở đây

Chính xác hơn, điểm cuối của dòng đó.

Là Hough biến đổi một sự lựa chọn? Nếu có, tôi nên thiết lập hình ảnh như thế nào trước khi sử dụng Hough?

Bất kỳ cách giải quyết này sẽ hữu ích.


Thực hiện phát hiện cạnh trước khi biến đổi Hough. Nó sẽ biến chuyển đó vào một đường tươi sáng với màu đen trên cả hai mặt
endolith

Câu trả lời:


10

Nói chung, bạn muốn một máy dò cạnh, như máy dò cạnh Canny, cho loại vấn đề này. Biến đổi Hough rất hữu ích để trích xuất các dòng hơn là các cạnh.

Tuy nhiên, trong trường hợp cụ thể này, bạn nên làm điều gì đó như:

imdata = imread('grayblue.jpg');
colidx = find(diff(imdata(1,:) ~= 0);

vì đó là một hình ảnh đơn giản.


0

Đối với một hình ảnh đơn giản, một hạt nhân chập như sau sẽ tìm thấy các cạnh độc đáo:

[-1 2 - 1]

Điều này mang lại một pixel cạnh duy nhất tại mỗi điểm cạnh. Không ồn ào, không ầm ĩ. Canny quá tham gia vào vấn đề này. Nếu bạn muốn tìm các điểm cạnh cho các đường ở bất kỳ góc nào, thì bạn có thể sử dụng một Laplacian đơn giản, Laplacian của Gaussian (LoG) hoặc Difference of Gaussian (DoG). Sobel và Prewitt cũng đơn giản nhưng không phù hợp vì chúng mang lại một dòng "độ dày gấp đôi".

Có một triển khai nhanh chóng của Hough được mô tả ở đây: http://www.ic.uff.br/~laffernandes/projects/kht/index.html

Ngoài ra còn có các thuật toán "tham số Hough" rất nhanh, nhưng hơi khó để thực hiện và gỡ lỗi.

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.