Ich habe ein Projekt, in dem ich 3 bestimmte Farben in vielen Blättern Bilder erkennen muss: Grün, Gelb und Braun.Ich habe Schwierigkeiten, bestimmte Farben mit openCV zu erkennen
Ich bin mit dem folgenden Bild als Beispiel:
Ziel, die verschiedenen Farben zu erfassen, um zu bestimmen, ob der Baum krank ist oder nicht, so ist es wirklich wichtig ist, in der Lage sein sagen Sie richtig, was grün, gelb und braun ist, selbst in kleinen Pixeln.
Ich schrieb den folgenden Code:
//Load the image
Mat img_bgr = imread("c:\\testeimagem\\theeye\\greening32.jpg", 1);
if (img_bgr.empty()){
cout << "Nenhuma imagem foi carregada..." << endl;
return -1;
}
//Display the image
namedWindow("Original Image", WINDOW_NORMAL);
imshow("Original Image", img_bgr);
waitKey(0);
destroyAllWindows;
//Conversion to HSV
Mat img_hsv;
cvtColor(img_bgr, img_hsv, CV_BGR2HSV_FULL);
//Extracting colors - HSV
Mat cores_divididas, green, yellow, brown;
//Yellow
inRange(img_hsv, Scalar(28, 240, 240), Scalar(33, 255, 255), yellow);
imwrite("c:\\testeimagem\\theeye\\yellow.jpg", yellow);
//Green
inRange(img_hsv, Scalar(38, 100, 100), Scalar(70, 190, 190), green);
imwrite("c:\\testeimagem\\theeye\\green.jpg", green);
//Brown
inRange(img_hsv, Scalar(10, 90, 90), Scalar(20, 175, 175), brown);
imwrite("c:\\testeimagem\\theeye\\brown.jpg", brown);
namedWindow("Yellow", WINDOW_NORMAL);
imshow("Yellow", yellow);
namedWindow("Green", WINDOW_NORMAL);
imshow("Green", green);
namedWindow("Brown", WINDOW_NORMAL);
imshow("Brown", brown);
waitKey(0);
destroyAllWindows;
return 0;
Wenn du diesen Code kompilieren, werden Sie feststellen, dass die grüne Farbe nicht richtig erkannt wird und die anderen Farben nicht erfaßt.
Als Richtwerte für Referenzwerte, I used this trackbar.
Adriano, ich war gestern bei meiner Arbeit, als ich zuerst Ihren Code überprüft habe, also konnte ich ihn nicht gut testen, aber später während des Unterrichts konnte ich ihn mit mehr Zeit und mit diesen Parametern betrachten, obwohl im Fall von Das Blatt, das ich am anderen Beitrag kommentierte, scheint mit anderen Bildern wirklich gut zu arbeiten, und ich kann eine bessere Weise nicht herausfinden, die Farben als this darzustellen. Ich habe nicht darüber nachgedacht, die niedrigeren Werte zum Minimum und zum höheren einzustellen Werte bis zum Maximum. Vielen Dank, du hast mir sehr geholfen! Wenn ich einen besseren Weg finden kann, werde ich zurückkommen und mit euch teilen. – Nicholas