Ich habe eine blaue Linie mit OpenCV und Houghlines (in C++) gemacht und ich frage mich, was in eine if-Anweisung, die erkennen soll, ob die blaue Linie existiert und ob es eine führt Aktion.erkennen blaue Linie mit if-Anweisung
Ich versuchte mit der cv :: inRange Funktion, um das Blau zu erkennen, aber ich kann es nicht in der if-Anweisung verwenden.
Hier ist der Code die blauen Linien zu zeichnen:
vector<Vec2f> lines;
HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0);
for(size_t i = 0;i < lines.size();i++)
{
float rho = lines[i][0], theta = lines[i][1];
//scan only for horizontal line)
if(theta > CV_PI/180*80 && theta < CV_PI/180*100){
Point pt1, pt2;
double a = cos(theta), b = sin(theta);
double x0 = a*rho, y0 = b*rho;
pt1.x = cvRound(x0 + 1000*(-b));
pt1.y = cvRound(y0 + 1000*(a));
pt2.x = cvRound(x0 - 1000*(-b));
pt2.y = cvRound(y0 - 1000*(a));
//draw the line in blue
cvLine(m_image, pt1, pt2, Scalar(255,0,0), 3, CV_AA);
}
}
}
Und im Grunde, was ich will zu tun ist
if (blue line exists) {
do something
}
Dies ist das aktuelle Bild ich immer bin. (Ignoriere die grüne und rote Linie, es ist im Grunde POV von Auto auf der Straße) Ich vermute, wenn blaue Linie in den unteren Teil des Bildes (direkt vor dem Bild) bekommen, dann führen Sie die Aktion (machen das Auto Stopp)
Vielen Dank für Ihre Zeit.
PS. Danke Saransh Kejriwal, ich versuche es jetzt mit der Flagge.
wie würde das fertige Bild aussehen? kann das Bild ähnliche Farben an anderen Pixeln haben als an der Linie, an der Sie zeichnen? –
Ich habe das Bild hinzugefügt, das ich analysiere, danke! – Prime47