Làm cách nào để phát hiện các cạnh giữa các màu khác nhau có cùng độ sáng?


7

Tôi đang tìm kiếm một thuật toán có thể xác định các cạnh trên đó màu sắc đang thay đổi mạnh, thay vì chỉ tìm thấy những thay đổi về độ sáng.

Đây chỉ là vấn đề sử dụng một không gian màu khác với các thuật toán phát hiện cạnh hiện có, hay có cách tiếp cận nào tốt hơn?


2
Có, sử dụng một không gian màu thích hợp là những gì bạn muốn.
Julien Guertault

Câu trả lời:


3

Tôi nghĩ bạn có thể chuyển đổi từ không gian RGB sang HSV hoặc bất kỳ không gian màu nào có HUE trong một kênh.

Lấy kênh HUE và thực hiện phát hiện cạnh trên kênh đó.

Đây là một kịch bản Matlab đơn giản để đạt được kết quả.

I = imread('image.png');
hsv = rgb2hsv(I);
hue = hsv(:,:,1);
edges = edge(uint8(hue),'sobel');
imshow(edges);

2

Sự khác biệt màu sắc là sự khác biệt về độ sáng, trong một số kênh màu. Vì vậy, trong khi tổng của các kênh riêng lẻ giữ nguyên, có sự khác biệt về cường độ nếu có sự khác biệt về màu sắc.

Bây giờ các thuật toán cơ bản không thực sự xác định cách bạn nên xử lý dữ liệu đa kênh. Vì vậy, không có gì sai khi sử dụng một không gian màu khác nhau. Mặt khác, không có gì nói rằng bạn không thể áp dụng tích chập trên tất cả các kênh và sau đó chọn kết quả tương phản nhất.

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.