Рубрики
Без рубрики

Обнаружение OpenCV с помощью Python: Обнаружение краев

Во время моего изучения способов силы в OpenCV это было вопрос времени, прежде чем столкнуться … Теги с Python, обнаружение краев, Opencv, обработки изображений.

Во время моего изучения способов силы в Opencv это было вопрос времени до встречи с обнаружением края. Эта концепция, которая также подпадает под обработку изображений, использует тот же принцип свертки, которую я писал о раньше. Целью обнаружения края является выделение наброски самой важной информации изображения. Это один из важных шагов в обнаружении объекта и непосредственно влияет на понимание машин мира.

Прежде всего, важно понимать, что реальный мир непрерывный, тогда как изображение реального мира состоит из дискретных (индивидуальных) пикселей. Теперь давайте увеличить на пикселях на одну секунду:

Это очевидно для всех нас, что край, где указывается красная линия; Однако невозможно нарисовать преимущество между самыми наименьшими двумя единицами (не совсем правдой, есть методы, такие как супер-выборки). Следовательно, компьютер проверяет, находится ли пиксель на краю путем сравнения соседних соседей пикселей. Здесь, если бы мы ходили слева направо, пиксель № 2 является преимуществом, так как существует значительная разница между 1 и 3. Так же относится к пикселю № 3. Результат будет выглядеть что-то подобное:

Тем не менее, в реальной жизни изображения также включают серые пиксели с различной интенсивностью (значение от 1 до 254). Поэтому, чтобы увидеть, сколько изменилось градиент (см. Также величина градиента Если вам больше интересует), мы используем первое производное, чтобы указать величину изменений. Тогда до нас установить порог, который определил, будет ли величина изменений достаточно большой, чтобы считаться краем. Чтобы сделать его еще один шаг вперед, мы также можем использовать вторую производную и искать значения с нулевым пересечением, которые захватывают локальные максимумы в градиенте изображения (см. Изображение ниже).

Кроме того, благодаря характеру обнаружения края они довольно чувствительны к шуму (подумайте о плохом качестве изображения; следовательно, настоятельно рекомендуется размыть изображение, чтобы сгладить шум и, следовательно, увеличить точность краев.

Сказанные в более простых словах, производные первого порядка лучше всего подходят для идентификации сильных ребер путем создания порогового значения, в то время как производные второго порядка лучше всего подходят для определения местоположения. Оба типа чувствительны к шуму, поэтому раскройте изображения сначала для получения наилучших результатов.

Я буду применять различные типы методов обнаружения краев на этом исходном изображении ниже. Обязательно проверите код на моем Github Отказ

Оригинальный источник изображения

Производное первое заказа – оператор SOBEL

Детектор по краям SOBEL – это метод обнаружения края первого порядка. Он рассчитывает градиенты отдельно вдоль оси x и y y. Ядра уже включают в себя сглаживающий эффект. Есть много других типов ядер, таких как Scharr или prewitt Отказ

Производное второе заказа – оператор Лапласиан

В отличие от оператора SOBEL, Лаплаксиан использует только одно ядро, тем не менее, более популярное использование – сочетать его с гауссовым размытым, чтобы уменьшить шум.

Детектирование по краю Canny

Детектор Canny Edge, вероятно, является одним из наиболее широко используемых методов обнаружения краев. Причина, по которой это превосходит до синхронизации методов, связано с «Не максимальное подавление» производить один пиксельный густой край. Обнаружение состоит из многих шагов, проверьте это здесь Отказ

Обнаружение краев – это просто первый шаг, который необходимо для дальнейшего анализа изображений, такого как обнаружение формы или идентификацию объекта. Помимо наиболее очевидного использования в машинном видении (то есть самообслуживания), он также широко используется на анализе медицинских изображений, чтобы помочь с диагностикой или даже идентифицировать патологические объекты, такие как опухоль.

В целом, это было еще раз забавный способ играть с Opencv, дайте мне знать, что вы думаете, и пусть Python будет с вами.

Оригинал: “https://dev.to/tinazhouhui/discovering-opencv-using-python-edge-detection-185g”