exponenta event banner

Обнаружение линий с помощью преобразования Радона

В этом примере показано, как использовать преобразование Радона для обнаружения линий на изображении. Преобразование Радона тесно связано с обычной операцией компьютерного зрения, известной как преобразование Хафа. Вы можете использовать radon функция для реализации формы преобразования Хафа, используемого для обнаружения прямых линий.

Вычисление преобразования Радона изображения

Чтение изображения в рабочую область. Преобразование в изображение в оттенках серого.

I = fitsread('solarspectra.fts');
I = rescale(I);

Отображение исходного изображения.

figure
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

Вычислить двоичное изображение края с помощью edge функция. Отображение двоичного изображения, возвращенного edge функция.

BW = edge(I);
figure
imshow(BW)
title('Edges of Original Image')

Figure contains an axes. The axes with title Edges of Original Image contains an object of type image.

Вычислите радоновое преобразование изображения, используя radon и отобразить преобразование. Расположения пиков в преобразовании соответствуют расположениям прямых линий в исходном изображении.

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

Figure contains an axes. The axes with title R_{\theta} (x^{\prime}) contains an object of type image.

Самый сильный пик в R соответствует λ = 1 градусу и x '= -80 пикселям от центра.

Интерпретация пиков преобразования Радона

Чтобы визуализировать этот пик на исходной фигуре, найдите центр изображения, обозначенный синим крестом, наложенным на изображение ниже. Красная пунктирная линия - это радиальная линия, проходящая через центр под углом, равным 1 градусу. При перемещении вдоль этой линии -80 пикселов от центра (влево) радиальная линия перпендикулярно пересекает красную сплошную линию. Эта сплошная красная линия является прямой линией с самым сильным сигналом в преобразовании Радона.

Чтобы интерпретировать преобразование Радона дальше, изучите следующие четыре самых сильных пика в R.

Два сильных пика в R обнаруживаются при λ = 1 градус, при смещениях -84 и -87 пикселей от центра. Эти пики соответствуют двум красным линиям слева от самой сильной линии, наложенной на изображение ниже.

Два других сильных пика найдены рядом с центром R. Эти пики расположены при λ = 91 градус, со смещениями -8 и -44 пикселей от центра. Зеленая пунктирная линия на изображении ниже представляет собой радиальную линию, проходящую через центр под углом 91 градус. При перемещении вдоль радиальной линии на расстояние от -8 до -44 пикселей от центра радиальная линия перпендикулярно пересекает сплошные зеленые линии. Эти сплошные зеленые линии соответствуют сильным пикам вR.

Более слабые линии на изображении относятся к более слабым пикам в R.