Sto cercando di impostare un nuovo valore di colore a qualche pixel in una cv :: Mat immagine mio codice è qui sotto:C++ e OpenCV ottenere e impostare il colore dei pixel a 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);
Sembra di ottenere il buon pixel in uscita (con cout) tuttavia nell'immagine di output (con imwrite) i pixel in questione non vengono modificati. Ho già provato a usare color.val [0] .. Non riesco ancora a capire perché i colori dei pixel nell'immagine di output non cambino. grazie
perché il problema riguardava un colore Mat. nel caso uchar, ofc. usa 'uchar & c = image.at (y, x)' –
berak
scusa, intendevo commentare un'altra risposta, e +1. –