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

В этом примере показано, как использовать преобразование Радона для обнаружения линий в изображении. Преобразование Радона тесно связано с общей операцией компьютерного зрения, известной как преобразование Хафа. Можно использовать 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 и отобразите преобразование. Местоположения 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

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

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

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

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

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

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

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

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

Для просмотра документации необходимо авторизоваться на сайте