2016-08-29 3 views
0

Ich bin gerade ein wenig verwirrt, ich kann den richtigen Wert für dieses grüne Quadrat nicht finden. Hier ist das Bild enter image description hereWas wäre der HSV-Bereich dafür in Opencv?

Die hsv Werte, die ich wählen sind: -

cv::inRange(src, Scalar(25, 20, 20), Scalar(85, 255, 200), src); 

Hier ist die Ausgabe von dieser: - enter image description here

Was der richtige Wert für hsv ist, dass ich wählen?

Antwort

1

Diese Bereiche sollten gut genug arbeiten:

inRange(hsv, Scalar(35, 20, 20), Scalar(85, 255, 255), mask); 

enter image description here

dass OpenCV speichert Bilder als BGR Denken Sie daran, und nicht RGB. Wenn Sie also in HSV konvertieren, verwenden Sie unbedingt COLOR_BGR2HSV und nicht COLOR_RGB2HSV.

#include <opencv2/opencv.hpp> 
using namespace cv; 

int main() 
{ 
    Mat3b img = imread("path_to_image"); 

    Mat3b hsv; 
    cvtColor(img, hsv, COLOR_BGR2HSV); 

    Mat1b mask; 
    inRange(hsv, Scalar(35, 20, 20), Scalar(85, 255, 255), mask); 

    imshow("Mask", mask); 
    waitKey(); 

    return 0; 
} 

können Sie weitere Details finden auf HSV reicht here und here

+0

Danke, es war ein dummer Fehler, den ich es zu HSV konvertieren vergessen zu ..... Auch können Sie mir sagen, wie INRANGE Werte holen für HSV weiß ich nicht, wie man sie findet .... –

+0

Überprüfen Sie die Bearbeitung! D – Miki

Verwandte Themen