В изображении ребро является кривой, которая следует по пути быстрого изменения интенсивности изображения. Ребра часто связаны с контурами объектов в сцене. Обнаружение ребра используется, чтобы идентифицировать ребра в изображении.
Чтобы найти ребра, можно использовать edge
функция. Эта функция ищет места в изображении, где интенсивность изменяется быстро, используя один из двух следующих критериев:
Места, где первая производная интенсивности больше по величине, чем некоторый порог
Места, где вторая производная интенсивности имеет пересечение нуля
edge
предоставляет несколько оценок производных, каждый из которых реализует одно из этих определений. Для некоторых из этих оценок можно задать, должна ли операция быть чувствительной к горизонтальным ребрам, вертикальным ребрам или обоим. edge
возвращает бинарное изображение, содержащее 1, где найдены ребра, а 0 - в другом месте.
Самый мощный метод обнаружения ребер, который edge
обеспечивает метод Canny. Метод Канни отличается от других методов обнаружения ребер тем, что он использует два разных порога (для обнаружения сильных и слабых ребер), и включает слабые края в выход, только если они соединены с сильными ребрами. Поэтому этот метод с меньшей вероятностью, чем другие, подвергается воздействию шума, и с большей вероятностью обнаруживает истинные слабые ребра.
Этот пример показывает, как обнаружить ребра в изображении, используя как детектор ребра Канни, так и детектор ребра Собеля.
Чтение изображения и его отображение.
I = imread('coins.png');
imshow(I)
Примените оба детектора ребер Собеля и Канни к изображению и отобразите их для сравнения.
BW1 = edge(I,'sobel'); BW2 = edge(I,'canny'); figure; imshowpair(BW1,BW2,'montage') title('Sobel Filter Canny Filter');