В этом руководстве вы узнаете, как вы можете подсчитать количество объектов на изображении с Python, используя CV2.
Это наше тестовое изображение:
Давайте перейдем к коду:
Сначала нам нужно импортировать наши зависимости:
import cv2 import numpy as np
Сначала нам нужно прочитать наше изображение:
img = cv2.imread('test.jpg')
Тогда мы будем преобразовать его в серого
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
После этого мы делаем пороговое значение на изображении
_, thresh = cv2.threshold(img, 225, 255, cv2.THRESH_BINARY_INV) kernal = np.ones((2, 2), np.uint8)
Тогда мы выполняем процесс расширения, удаление черных искажений:
dilation = cv2.dilate(thresh, kernal, iterations=2)
Следующий шаг – найти контурные формы:
contours, hierarchy = cv2.findContours( dilation, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
Тогда мы получаем количество контуров (найденные объекты):
objects = str(len(contours))
Теперь мы можем печатать количество объектов на изображении
text = "Obj:"+str(objects) cv2.putText(dilation, text, (10, 25), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (240, 0, 159), 1)
Для последнего шага мы можем показать, оригинальное, пороговое и расширение изображения:
cv2.imshow('Original', img) cv2.imshow('Thresh', thresh) cv2.imshow('Dilation', dilation) cv2.waitKey(0) cv2.destroyAllWindows()
Это наш конечный результат:
Спасибо вам всем.
Оригинал: “https://dev.to/stokry/how-to-count-objects-on-an-image-with-python-142h”