Ersetzen Sie alle Pixel einer bestimmten Farbe in einem C++ matrix class
1.) ich habe eine Matrix-Klasse
Mat src = imread("/pic.png", 0)
http://i1265.photobucket.com/albums/jj502/anizilla/demo_result.png
Möchte ich ersetzen Sie alle weißen Pixel in der oben gegebenen Bild zu schwarz.
Gibt es einen Weg, Sie zu ersetzen alle Pixel mit einem bestimmten RGB-Wert mit einem anderen?
2) Wenn ich -
src.col(0).row(0)
Bekomme ich die richtigen Werte. Gibt es eine Möglichkeit, zu extrahieren Wert eines jeden RGB-Kanal?
3) Wenn ich -
src.at<Vec2b>(0,0)[0];
Bekomme ich Müll Werte (wie .
und !
). Ich bekomme Müll Wert, wenn ich <Vec2d>
Aber. Wenn ich
src.at<Vec2s>(0,0)[0];
Bekomme ich richtige Wert für Kanal 0 und
src.at<Vec2s>(0,0)[1];
src.at<Vec2s>(0,0)[2];
gibt Müll zahlen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist sehr einfach, wenn Sie es richtig machen.
Explizite template-Instantiierung, z.B.
Verwenden Sie Iteratoren:
Sorry, die erste vorgeschlagene Lösung (
src.setTo(newMat, (src == old));
) funktioniert nur mit single-channel-Matrizen.