Предположим, что есть бинарное изображение черного фона и «нанесенных» на него белых линий, то есть они не сгорели на изображении.Например:
Мне нужно сохранить только линии, параллельные по крайней мере одной из других линий на рисунке.Если не совсем параллельно, по крайней мере достаточно близко, чтобы быть параллельным (возможно, в этом поможет переменная, которая может контролировать степень параллелизма).Другими словами, если я выберу определенную линию, и у нее будет одна или несколько параллельных ей линий, я сохраню ее, в противном случае я ее отбрасываю.Мне нужно сделать это для всех строк изображения.
Я наткнулся на Преобразование Хафа , но у меня возникли проблемы с пониманием, как использовать ячейки для проверки ориентации и определения параллельных линий.Или есть лучший способ сделать это?
Кроме того, поскольку линии не являются частью изображения и просто нанесены на него, у меня нет изображения для подачи в функцию Hough Transform.Могу ли я использовать выходные данные функции графика в качестве входных данных напрямую?Вот код, который я написал для построения белых линий:
Location1
- это матрица размером 2 на 2, которая содержит координаты для рисования линий.
figure; imshow(blackImage);
hold on ;
for i=1:size(Location1,1)-1
h = plot([Location1(i,1) Location1(i+1,1)], [Location1(i,2) Location1(i+1,2)]) ;
set(h,'linewidth', .1, 'color', 'b') ;
end
Любая помощь будетбыть оцененным.