Я обрабатываю изображение с помощью OpenCV на Python и хочу подсчитать все объекты (черви) на нем.Черви довольно светло-бежевые, тогда как фон черный (см. Рисунок), поэтому их довольно легко отличить.Проблема в том, что иногда черви находятся слишком близко друг к другу (иногда они даже перекрываются) и cv.findContours () нарисует один большой контур вместо двух меньших (см. Рисунок ниже).
Поскольку я использую cv.foundContours () , я должен сначала превратить изображение в черно-белое, затем размыть его (необязательно) и, наконец, пороговое значение, чтобы белые черви на черном фоне.
Я использую следующий код:
import cv2 as cv
img = cv.imread('worms.jpg')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
blur=cv.GaussianBlur(gray,(5,5),1)
ret,osu = cv.threshold(blur,0,255,cv.THRESH_BINARY+cv.THRESH_OTSU)
imsource,contours,test = cv.findContours(osu,1,1)
cv.drawContours(img,contours,-1, (0,0,255),2)
Я пытался стереть пороговую картинку, но она не работает, так как «связь» между двумя червями довольно велика.
![Picture Processing](https://i.stack.imgur.com/fCoOC.jpg)
Спасибо за помощь