Jump to content

Обнаружение линии

При обработке изображений обнаружение линий — это алгоритм, который берет набор из n краевых точек и находит все линии, на которых лежат эти краевые точки. [1] Наиболее популярными линейными детекторами являются методы, основанные на преобразовании Хафа и свертке . [2]

Преобразование Хафа

[ редактировать ]

Преобразование Хафа [3] может использоваться для обнаружения линий, а выходные данные представляют собой параметрическое описание линий изображения, например ρ = r cos(θ) + c sin(θ). [1] Если в пространстве изображений на основе строк и столбцов есть линия, ее можно определить ρ, расстояние от начала координат до линии вдоль перпендикуляра к линии, и θ, угол проекции перпендикуляра от начала координат до линии. измеряется в градусах по часовой стрелке от положительной оси строки. Следовательно, линия на изображении соответствует точке пространства Хафа. [4] Таким образом, пространство Хафа для линий имеет эти два измерения θ и ρ, а линия представлена ​​одной точкой, соответствующей уникальному набору этих параметров. Затем можно реализовать преобразование Хафа, выбрав для использования набор значений ρ и θ. Для каждого пикселя ( r , c ) изображения вычислите r cos(θ) + c sin(θ) для каждого значения θ и поместите результат в соответствующую позицию в массиве (ρ, θ). В конце значения (ρ, θ) с самыми высокими значениями в массиве будут соответствовать самым сильным линиям на изображении.

свертки Техника на основе

[ редактировать ]

В методе, основанном на свертке , оператор детектора линий состоит из масок свертки, настроенных на обнаружение присутствия линий определенной ширины n и ориентации θ. Вот четыре маски свертки для обнаружения горизонтальных, вертикальных, наклонных (+45 градусов) и наклонных (-45 градусов) линий на изображении.

а) Горизонтальная маска (R1)

−1 −1 −1
2 2 2
−1 −1 −1

(б) Вертикальный (R3)

−1 2 −1
−1 2 −1
−1 2 −1

(C) Наклон (+45 градусов)(R2)

−1 −1 2
−1 2 −1
2 −1 −1

(d) Наклон (-45 градусов) (R4)

2 −1 −1
−1 2 −1
−1 −1 2

[5]

На практике маски накладываются на изображение, а ответы объединяются по следующему уравнению:

R(x, y) = max(|R1 (x, y)|, |R2 (x, y)|, |R3 (x, y)|, |R4 (x, y)| )

Если R(x, y) > T, то разрыв

Как видно ниже, если маска наложена на изображение (горизонтальная линия), умножьте совпадающие значения и просуммируйте все эти результаты, на выходе будет (свернутое изображение). Например, (−1)(0)+(−1)(0)+(−1)(0) + (2)(1) +(2)(1)+(2)(1) + (− 1)(0)+(-1)(0)+(-1)(0) = 6 пикселей во второй строке, втором столбце в (свёрнутом изображении), начиная с верхнего левого угла горизонтальных линий. [1] стр. 82

Горизонтальная линия свернутое изображение
0 0 0 0 - - - -
1 1 1 1 = - 6 6 -
Маска * 0 0 0 0 - - - -
−1 −1 −1
2 2 2
−1 −1 −1
* Вертикальная линия свернутое изображение
0 0 1 0 - - - -
0 0 1 0 = - 0 0 -
0 0 1 0 - - - -

Эти маски, приведенные выше, настроены на светлые линии на темном фоне и будут давать сильный отрицательный ответ на темные линии на светлом фоне. [5]

Пример кода

[ редактировать ]

Код использовался для обнаружения только вертикальных линий на изображении с помощью Matlab, результат приведен ниже. Исходное изображение находится вверху, а результат — под ним. Как видно на рисунке справа, были обнаружены только вертикальные линии.

Исходное изображение
обнаружение линии
clear all
clc
% this MATLAB program will only detect vertical lines in an image
building = imread('building.jpg'); % This will upload the image building
tol = 5; % define a tolerance in the angle to account for noise or edge
        % that may look vertical but when the angle is computed
        % it may not appear to be
[~, angle] = imgradient(building);
out = (angle >= 180 - tol | angle <= -180 + tol);
%this part will filter the line
out_filter = bwareaopen(out, 50);
figure, imshow(building), title('Original Image');
figure, imshow(out_filter), title('Detected Lines');

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б с Умбо, Скотт Э. (2011). Цифровая обработка и анализ изображений: приложения человеческого и компьютерного зрения с CVIPtools (2-е изд.). Бока-Ратон, Флорида: CRC Press. ISBN  9781439802052 . OCLC   491888664 .
  2. ^ «Преобразование Хафа — хаф MATLAB» . www.mathworks.com . Проверено 23 апреля 2018 г.
  3. ^ «Обнаружение линии с помощью преобразования Хафа» (PDF) .
  4. ^ Ли, Фей-Фей (10 октября 2011 г.). «Поиск линий: от обнаружения до подбора модели» (PDF) . Стэнфордская лаборатория зрения.
  5. ^ Перейти обратно: а б «Обнаружение линии» . homepages.inf.ed.ac.uk . Проверено 23 апреля 2018 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b0e2d6e3bea575914a9375f874eb9cfe__1719037740
URL1:https://arc.ask3.ru/arc/aa/b0/fe/b0e2d6e3bea575914a9375f874eb9cfe.html
Заголовок, (Title) документа по адресу, URL1:
Line detection - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)