В этом примере показано, как использовать преобразование Радона для обнаружения линий в изображении. Преобразование Радона тесно связано с общей операцией компьютерного зрения, известной как преобразование Хафа. Можно использовать radon
функция для реализации формы преобразования Хафа, используемой для обнаружения прямых линий.
Чтение изображения в рабочую область. Преобразуйте его в полутоновое изображение.
I = fitsread('solarspectra.fts');
I = rescale(I);
Отобразите оригинальное изображение.
figure
imshow(I)
title('Original Image')
Вычислите двоичное ребро с помощью edge
функция. Отобразите бинарное изображение, возвращенное edge
функция.
BW = edge(I);
figure
imshow(BW)
title('Edges of Original Image')
Вычислите радоновое преобразование изображения, используя radon
и отобразите преобразование. Местоположения peaks в преобразовании соответствуют расположениям прямых линий в оригинальное изображение.
theta = 0:179; [R,xp] = radon(BW,theta);
Отобразите результат радонового преобразования.
figure imagesc(theta, xp, R); colormap(hot); xlabel('\theta (degrees)'); ylabel('x^{\prime} (pixels from center)'); title('R_{\theta} (x^{\prime})'); colorbar
Самый сильный пик в R
соответствует степень и x '= -80 пикселей от центра.
Чтобы визуализировать этот пик на исходном рисунке, найдите центр изображения, обозначенный синим крестом, наложенным на изображение ниже. Красная штриховая линия является радиальной линией, которая проходит через центр под углом степень. Если вы перемещаетесь вдоль этой линии -80 пикселей от центра (налево), радиальная линия перпендикулярно пересекает сплошную красную линию. Эта твердая красная линия является прямой линией с самым сильным сигналом в преобразовании Радона.
Чтобы интерпретировать преобразование Радона далее, исследуйте следующие четыре самых сильных peaks в R
.
Два сильных peaks в R
найдены в степень, при смещениях -84 и -87 пикселей от центра. Эти пики соответствуют двум красным линиям слева от самой сильной линии, наложенным на изображение ниже.
Два других сильных peaks встречаются недалеко от центра R
. Эти пики расположены на степени со смещениями -8 и -44 пикселя от центра. Зеленая штриховая линия на изображении ниже является радиальной линией, проходящей через центр под углом 91 степень. Если вы перемещаетесь вдоль радиальной линии на расстояние -8 и -44 пикселя от центра, то радиальная линия перпендикулярно пересекает сплошные зеленые линии. Эти сплошные зеленые линии соответствуют сильному peaks в R
.
Более слабые линии на изображении относятся к более слабому peaks в R
.