Как выбрать цветовые границы для обнаружения манго из дерева на изображении, используя opencv в python? - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь обнаружить и посчитать манго на дереве по изображению.В частности, это изображение - https://imgur.com/a/FrY5wkV "Манго в дереве".

Итак, я использую OpenCV в Python для этого.Но я не получаю ожидаемых результатов, и я думаю, что главная проблема заключается в невозможности выбрать цветовые границы, которые классифицируют манго.

Я уже много раз пытался изменить верхнюю границу RGB, используя палитру цветов для идентификации манго, но код обнаруживает все зеленые материалы, включая траву, листья и т. Д. Вот мой код -

import cv2
import numpy as np

#cam= cv2.VideoCapture(0)
kernelOpen=np.ones((5,5))
kernelClose=np.ones((20,20))

font = cv2.FONT_HERSHEY_SIMPLEX

while True:
img = cv2.imread("C:/Users/Talha/Desktop/bigmango1.jpg")
#img=cv2.resize(img,(340,220))

#convert BGR to HSV
imgHSV= cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
# create the Mask
mask=cv2.inRange(imgHSV, (36,25,50), (237, 229, 148))


#morphology
maskOpen=cv2.morphologyEx(mask,cv2.MORPH_OPEN,kernelOpen)
maskClose=cv2.morphologyEx(maskOpen,cv2.MORPH_CLOSE,kernelClose)

maskFinal=maskClose
_,conts,h=cv2.findContours(maskFinal.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)

cv2.drawContours(img,conts,-1,(255,0,0),1)
for i in range(len(conts)):
    x,y,w,h=cv2.boundingRect(conts[i])
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255), 2)
    cv2.putText(img, str(i+1),(x,y+h),cv2.FONT_HERSHEY_SIMPLEX,0.7,(0,255,0))


cv2.imshow("maskOpeng",maskOpen)
cv2.imshow("camg",img)

cv2.waitKey(0)
if cv2.waitKey(10) &0xFF ==ord('q'):
            cap.release()
            cv2.destroyAllWindows()
            break

В результате я получаю это изображение - https://imgur.com/a/J2DsFB8 "camg"

и это - https://imgur.com/a/i9LGIFh "maskOpeng"

Итак, мой вопрос: как я могу обнаружить только манго по этому изображению, какие изменения в моем коде необходимы, и является ли это правильным подходом?Я новичок в этой области, поэтому упоминание конкретных модификаций будет высоко оценено.Заранее спасибо.

...