Если я правильно понимаю, вы хотите найти контур всех капель, а затем нарисуйте этот контур на другом изображении с контролируемой толщиной контура. Вы можете сделать это с помощью cv2.drawContours()
и контролировать толщину контура с помощью параметра thickness
. Установка отрицательного значения, например. -1
, заполнит контур, а увеличение параметра даст более толстый контур.
В этом примере мы находим контуры каждого шарика, используя cv2.findContours()
, затем рисуем контур на маске, используя cv2.drawContours()
. В вашем случае, вместо того, чтобы рисовать его на маске, вы можете нарисовать его на желаемое изображение. С thickness=2
:
С thickness=5
:
import cv2
import numpy as np
image = cv2.imread('1.png')
mask = np.ones(image.shape, dtype=np.uint8) * 255
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cnts = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
for c in cnts:
cv2.drawContours(mask, [c], -1, (36, 255, 12), thickness=5)
cv2.imshow('mask', mask)
cv2.waitKey()