Farberkennung in opencv
Möchte ich zu erkennen, dass eine bestimmte Farbe sagen, in blau, aus einem live-video-stream.
Ich habe geschrieben das folgenden code, der zeigt das live-video-stream und ändern Sie es in der HSV-und Graustufen. Da ich komplett neu bin opencv ich habe keine Ahnung, was als Nächstes zu tun ist.
Kann jemand führen Sie den code für mich zu erkennen, dass eine bestimmte Farbe.
#include<opencv\cv.h>
#include<opencv\highgui.h>
using namespace cv;
int main(){
Mat image;
Mat gray;
Mat hsv;
VideoCapture cap;
cap.open(0);
namedWindow("window", CV_WINDOW_AUTOSIZE);
namedWindow("gray", CV_WINDOW_AUTOSIZE);
namedWindow("hsv", CV_WINDOW_AUTOSIZE);
while (1){
cap >> image;
cvtColor(image, gray, CV_BGR2GRAY);
cvtColor(image, hsv, CV_BGR2HSV);
imshow("window", image);
imshow("gray", gray);
imshow("hsv", hsv);
waitKey(33);
}
return 0;
}
Bitte versuchen Sie online-Suche vor dem posten hier. Suchen Sie kurz, fand ich diese Seite, die erklärt Farberkennung in OpenCV: opencv-srf.blogspot.com/2010/09/...
Danke! Ich hatte schon geschaut, in diese website und konnte nicht alles verstehen, aber endlich, nach ein paar mehr zu Lesen, war ich in der Lage, um den code zu verstehen gegeben, dass website.
Danke! Ich hatte schon geschaut, in diese website und konnte nicht alles verstehen, aber endlich, nach ein paar mehr zu Lesen, war ich in der Lage, um den code zu verstehen gegeben, dass website.
InformationsquelleAutor BBB | 2013-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tun dies in drei Schritten:
Bearbeiten
Können Sie diese code zu finden, die HSV-Wert von jedem pixel von der Quelle Bild. Sie können sehen, eine gute Erklärung über den HSV-Farbraum hier, laden Sie sich die HSV-Farbkreis gibt es ab und an manuell herauszufinden, die HSV-Bereich.
Folgenden Bereich kann genutzt werden für das Bild geliefert, in die Kommentare:
Kann der folgende code verwendet werden:
Dies ist die Ausgabe:
Siehe meine bearbeitete Antwort.
Vielen Dank. Ist es immer der hit-und trial? Wie können wir sagen, dass eine bestimmte Farbe liegt zwischen einer Reihe. Zum Beispiel war ich mit so etwas wie (3,50,50) und (19,240,240) als mein Angebot. Aber es vermissen würde, ein paar Marker. Wenn ich änderte die ursprüngliche Reihe (3,70,50) einige weitere Marker wurden erkannt, aber einige früheren verschwunden. Ich kann wirklich nicht begreifen, das Konzept.
Btw ich habe gerade den Bereich in meinem Programm und den Bereich, den Sie erwähnen, nicht Funktion in meinem Programm überhaupt.
Gut mein Fehler, es scheint. Es funktioniert perfekt auf dem Bild, das Sie verwendet. Aber haben Sie einen Blick auf diese: sdrv.ms/17bFUnr Es gibt drei weitere, ähnliche Fotos gibt es von denen ich probierte mit der Farbe, die dem Bereich u erwähnt und es gab gute Ergebnisse, aber nicht perfekt. Problem ist, ich bin sampling-ein video und einige Bilder, die ich bekommen alle 65 Marker abgetastet, aber in einige Bilder, die ich bekommen nur 64.
InformationsquelleAutor Haris