Рубрики

Python | Морфологические операции в обработке изображений (градиент) | Set-3

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

Syntax: cv2.morphologyEx(image, cv2.MORPH_GRADIENT, kernel)

Parameters:
-> image: Input Image array.
-> cv2.MORPH_GRADIENT: Applying the Morphological Gradient operation.
-> kernel: Structuring element.

Ниже приведен код Python, объясняющий градиент морфологической операции —

# Python программа для иллюстрации
# Градиент морфологической операции
# на входных кадрах

  
# организация импорта

import cv2  

import numpy as np  

  
# вернуть видео с первой веб-камеры на вашем компьютере.

screenRead = cv2.VideoCapture(0)

  
# цикл запускается, если захват был инициализирован.

while(1):

    # читает кадры с камеры

    _, image = screenRead.read()

      

    # Преобразует в цветовое пространство HSV, OCV считывает цвета как BGR

    # кадр конвертируется в hsv

    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

      

    # определение диапазона маскировки

    blue1 = np.array([110, 50, 50])

    blue2 = np.array([130, 255, 255])

      

    # инициализация маски для

    # свернутый над входным изображением

    mask = cv2.inRange(hsv, blue1, blue2)

  

    # передача bitwise_and

    # каждый пиксель извилистый

    res = cv2.bitwise_and(image, image, mask = mask)

      

    # определение ядра т.е. структурирующий элемент

    kernel = np.ones((5, 5), np.uint8)

      

    # определение функции градиента

    # поверх изображения и структурирующего элемента

    gradient = cv2.morphologyEx(mask, cv2.MORPH_GRADIENT, kernel)

     

    # Маска и операция закрытия

    # отображается в окне

    cv2.imshow('Gradient', gradient)

      

    # Ждите клавишу «a», чтобы остановить программу

    if cv2.waitKey(1) & 0xFF == ord('a'):

        break

  
# Отменить выделение любого связанного использования памяти
cv2.destroyAllWindows()

  
# Закрыть окно / отпустить веб-камеру
screenRead.release()

Результат:

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

Рекомендуемые посты:

Python | Морфологические операции в обработке изображений (градиент) | Set-3

0.00 (0%) 0 votes