Распознавание перекрывающихся объектов - PullRequest
0 голосов
/ 19 марта 2019

Я обрабатываю изображение с помощью 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

Спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...