Что такое обнаружение краев?
Обнаружение краев – это методика обработки изображений для поиска границ объектов в изображениях. Он работает, обнаруживая разрывы в яркости.
где используется обнаружение края?
Обнаружение края используется для Сегментация изображения и Извлечение данных в таких областях, как обработка изображений , компьютерное зрение и * машинное зрение *, так зная, как это сделать в конечном итоге уводит вас.
Требования
Есть несколько алгоритмов обнаружения краев и разные библиотеки, поддерживающие его Но в этом руководстве я собираюсь показать вам, как это сделать, используя Opencv используя канатный алгоритм.
Установка
Установка в окне
Для окна просто используйте нормальные PIP, чтобы установить зависимости, как показано ниже;
pip install opencv-python pip install matplotlib
Установка на Linux.
Для Linux вам может потребоваться использовать PIP3, чтобы указать, что вы устанавливаете зависимости на Python3.
pip3 install opencv-python pip3 install matplotlib
Давай началось
Как только мы установили сейчас, мы готовы пойти к обнаружению краев с помощью Python, используя Каннические алгоритмы Отказ
Мы собираемся использовать метод OpenCV Imread () Чтобы загрузить изображение из файла, используйте Canny () * Чтобы обнаружить края, а затем, наконец, визуализируя изображения перед обнаружением и после использования Матплотлиб *
Чтение изображений с opencv
Чтобы прочитать изображение из файла, используя Imread () Метод необходимо предоставить два параметра, один для пути к нашему необработанному изображению, и следующий – это режим чтения, который может либо серым, RGB, HSV, HSL и т. Д.
SPENCV синтаксис для чтения изображения
import cv2 image = cv2.imread(path_to_image, mode_of_reading)
Каннические алгоритмы Обычно хорошо работают, когда изображение находится в оттенках серого, есть ярлык в OpenCV, чтобы открыть изображение в режиме серого, который выполняется путем размещения 0 в режим чтения.
Используя канатные алгоритмы для обнаружения краев
Обнаруживать края с Каннина Вы должны указать свое изображение необработанного изображения, нижний порог пикселя и более высокий порог пикселя в порядке, показанном ниже;
image_with_edges = cv2.Canny(raw_image, l_threshold, h_theshold)
Как порог влияет на обнаружение краев?
Градиент интенсивности пикселя больше, чем более высокий порог, он будет добавлен в виде краевого пикселя в выходном изображении, в противном случае он будет полностью отклонен.
Завершающий наш код и визуализируя его с MatPlotlib
Теперь, когда мы узнали основы OpenCV вместе с алгоритмами Canny Drection, теперь давайте поставим их вместе, чтобы попробовать приложение Real-World
Давайте обнаружим края на изображении образец ниже Road.jpg.
Используя знания, которые мы только что узнали выше, я собрал все вместе, чтобы придумать ниже окончательный код ниже, когда вы запустите его, он загрузит изображение, выполняет обнаружение и отображение его с помощью MATPLOTLIB.
import cv2 import matplotlib.pyplot as plt def detect_edge(image): ''' function Detecting Edges ''' image_with_edges = cv2.Canny(image , 100, 200) images = [image , image_with_edges] location = [121, 122] for loc, img in zip(location, images): plt.subplot(loc) plt.imshow(img, cmap='gray') plt.savefig('edge.png') plt.show() image = cv2.imread('road.jpg', 0) detect_edge(image)
Выход
После выполнения он сделает изображение с краями, как показано на рисунке ниже;
🎉🎉. 🎉 Поздравляем, вы только что узнали, как обнаружить края в Python, вы должны гордиться собой, Чирикать сейчас Поделиться этими хорошими новостями с вашими собратьями.
Также в случае чего-либо, бросьте его в окно комментариев ниже, и я вернусь к вам как можно скорее
Калебу/краевое обнаружение
Сценарий Python для обнаружения изображения на основе канальных алгоритмов
Руководство по выполнению выявления края в Python с использованием встроенных алгоритмов APENCV Canny ()
Оригинал: “https://dev.to/kalebu/how-to-detect-edges-in-an-image-using-opencv-in-python-12cm”