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

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

Чтобы найти ребра, можно использовать функцию edge. Эта функция ищет места в изображении, где интенсивность изменяется быстро, с помощью одного из этих двух критериев:

  • Места, где первая производная интенсивности больше в значении, чем некоторый порог

  • Места, где вторая производная интенсивности имеет нулевое пересечение

edge обеспечивает несколько производных средств оценки, каждое из которых реализует одно из этих определений. Для некоторых из этих средств оценки можно задать, должна ли операция быть чувствительна к горизонтальным ребрам, вертикальным ребрам или обоим. edge возвращает двухуровневое изображение, содержащее 1's, где ребра найдены и 0 в другом месте.

Самый мощный метод обнаружения ребра, который предоставляет edge, является методом Кэнни. Метод Кэнни отличается от других методов обнаружения ребра, в которых он использует два различных порога (чтобы обнаружить сильные и слабые ребра) и включает слабые ребра в вывод, только если они соединяются с сильными ребрами. Этот метод поэтому менее вероятен, чем другие быть затронутым шумом, и более вероятно обнаружить истинные слабые ребра.

Обнаружьте ребра в изображениях

Этот пример показывает, как обнаружить ребра в изображении с помощью и детектора ребра Кэнни и детектора ребра Sobel.

Считайте изображение и отобразите его.

I = imread('coins.png');
imshow(I)

Примените и детекторы ребра Собеля и Кэнни к изображению и отобразите их для сравнения.

BW1 = edge(I,'sobel');
BW2 = edge(I,'canny');
figure;
imshowpair(BW1,BW2,'montage')
title('Sobel Filter                                   Canny Filter');