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