Ich versuche, einen neuen Farbwert zu einem gewissen Pixel in einen Lebenslauf zu setzen :: Mat Bild ist mein Code unten:C++ und opencv erhalten und stellen Pixelfarbe Mat
Mat image = img;
for(int y=0;y<img.rows;y++)
{
for(int x=0;x<img.cols;x++)
{
Vec3b color = image.at<Vec3b>(Point(x,y));
if(color[0] > 150 && color[1] > 150 && color[2] > 150)
{
color[0] = 0;
color[1] = 0;
color[2] = 0;
cout << "Pixel >200 :" << x << "," << y << endl;
}
else
{
color.val[0] = 255;
color.val[1] = 255;
color.val[2] = 255;
}
}
imwrite("../images/imgopti"+to_string(i)+".tiff",image);
Es scheint, die zu bekommen good pixel in output (mit cout) aber im output image (mit imwrite) werden die betreffenden pixel nicht verändert. Ich habe bereits versucht, color.val [0] zu verwenden. Ich kann immer noch nicht herausfinden, warum sich die Pixelfarben im Ausgabebild nicht ändern. danke
, weil das Problem über eine Farbe Mat war. im Fall uchar, ofc. Verwenden Sie 'uchar & c = image.at (y, x)' –
berak
Entschuldigung, ich wollte eine andere Antwort kommentieren, und +1. –