OpenCV (C ++) - Setze HSV-Werte eines Pixels

Ich habe ein RGB-Bild, das ich in HSV konvertiert habe, und mein Ziel ist es, jedes Pixel, das einen bestimmten Farbtonwert (100) nicht erfüllt, auf Schwarz zu setzen. Also H = S = V = 0.

Ich habe diesen Code: (Frame3 ist das HSV Mat-Bild, Farbton = 100)

    for (int i = 0; i<frame3.rows; i++)   
    {
        for (int j = 0; j<frame3.cols; j++)
        {
            Vec3b hsv = frame3.at<Vec3b>(i, j);
            int H = hsv.val[0]; //hue
            int S = hsv.val[1]; //saturation
            int V = hsv.val[2]; //value
            if (H != hue) {
                H = 0;
                S = 0;
                V = 0;
            }

        }
    }
    imshow("Processed Hue", frame3);
}

Aber wenn ich es laufen lasse, geschieht nichts. Das Bild bleibt das selbe. Als ich versuchte, die Werte für hsv.val [0] auf der Konsole auszudrucken, bekam ich Buchstaben und keine Zahlen. Ich denke also, dass diese Art von Punkten auf das Problem hindeutet, aber ich weiß immer noch nicht, wie ich es beheben soll.

Jede Hilfe wäre sehr dankbar! Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage