Автор оригинала: Python Examples.
Opencv – контуры изображения
Контур в изображении – это план на объектах, присутствующих на изображении. Значение объектов зависит от требования и порога вы выбираете.
В этом руководстве мы узнаем, как найти контуры на изображении, используя библиотеку Python OpenCV.
Шаг, чтобы найти контуры в изображении
Чтобы найти контуры на изображении, выполните следующие действия:
- Читайте изображение как изображение серого.
- Используйте функцию cv2.threhold () для получения порогового изображения.
- Используйте CV2.Findcontours () и пропустите пороговое изображение и необходимые параметры.
- Findcontours () возвращает контуры. Вы можете нарисовать его на исходном изображении или пустое изображение.
Пример 1: Найти контуры в изображении
В этом примере мы возьмем следующее изображение и применяем вышеупомянутые шаги, чтобы найти контуры.
Входное изображение
В этом примере мы напишем контуры на новый двоичный образ.
Python Program
import cv2 import numpy as np img = cv2.imread('D:/original.png', cv2.IMREAD_UNCHANGED) #convert img to grey img_grey = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #set a thresh thresh = 100 #get threshold image ret,thresh_img = cv2.threshold(img_grey, thresh, 255, cv2.THRESH_BINARY) #find contours contours, hierarchy = cv2.findContours(thresh_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) #create an empty image for contours img_contours = np.zeros(img.shape) # draw the contours on the empty image cv2.drawContours(img_contours, contours, -1, (0,255,0), 3) #save image cv2.imwrite('D:/contours.png',img_contours)
Выходное изображение
В приведенной выше программе Python мы предприняли пороговое значение 100. Если вы измените порог, контуры также меняются. Давайте возьмем пороговое значение 128 и увидим результат.
Основываясь на распределении и характеристиках цвета вашего исходного изображения, вы должны выбрать пороговое значение.
Резюме
Чтобы обобщить этот учебник примеров Python, мы узнали, как найти контуры в изображении с помощью библиотеки Python OpenCV.