Opencv-python: Jak rozpoznać drzewa na obrazie?

0

Pytanie

Jak mogę rozpoznać drzewa na obrazie? Użyłem tego kodu, ale nie znalazłem na obrazie żadnego różu małego drzewa.

Spodziewam się, że jeśli dam taki obraz jako wejściowego, zostanie rozpoznany wniosek różanego drewna.

Oprócz tej metody, czy masz jakieś sugestie na temat rozpoznawania drzewa różanego????

dane wejściowe:

oczekiwany wynik (oznaczone ręcznie)

Kod:

import numpy as np


import cv2
from cv2 import *
im = cv2.imread(imagePath)

im = cv2.bilateralFilter(im,9,75,75)
im = cv2.fastNlMeansDenoisingColored(im,None,10,10,7,21)
hsv_img = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)   # HSV image


COLOR_MIN = np.array([233, 88, 233],np.uint8)       # HSV color code lower and upper bounds
COLOR_MAX = np.array([241, 82, 240],np.uint8)       # color pink 

frame_threshed = cv2.inRange(hsv_img, COLOR_MIN, COLOR_MAX)     # Thresholding image
imgray = frame_threshed
ret,thresh = cv2.threshold(frame_threshed,127,255,0)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
print(contours)
for cnt in contours:
    x,y,w,h = cv2.boundingRect(cnt)
    print(x,y)
    cv2.rectangle(im,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imwrite("extracted.jpg", im)

kod wyjściowy:

print(contours)
()

Problem w tym, że drzewa nie jest rozpoznawany

1

Najlepsza odpowiedź

1

Zmień dolną i górną granicę swojego HSV, jak pokazano poniżej:

COLOR_MIN = np.array([130,0,220],np.uint8)    
COLOR_MAX = np.array([170,255,255],np.uint8)  

enter image description here

2021-11-22 21:03:20

Dziękuję ci za odpowiedź. To była odpowiedź. Jedno pytanie, dlaczego wybrałeś ten kolor? [170,255,255]
M. Farzalizadeh

Po prostu pobaw się z tym zakresem HSV.Normalny zakres HSV:H = 0-360, S = 0-100 i V = 0-100. Zakres HSV Opencv: H: 0-179, S: 0-255, V: 0-255.W różnych aplikacjach stosowane są różne skale dla HSV. Skontaktuj się z podobnym problemie[stackoverflow.com/questions/10948589/...
Nishani Kasineshan

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................