Próbuję ustawić nową wartość koloru do pewnego piksela w cv :: Mat obraz mojego kodu jest poniżej:C++ i OpenCV pobrać i ustawić kolor piksela do 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);
Wydaje się, aby uzyskać dobry piksel na wyjściu (z cout) jednak w obrazie wyjściowym (z imwrite) dany piksel nie jest modyfikowany. Próbowałem już używać color.val [0] .. Nadal nie mogę zrozumieć dlaczego kolory pikseli na obrazie wyjściowym nie zmieniają się. dziękuje
, ponieważ problem dotyczył koloru Mat. w sprawie uchar, ofc. użyj 'uchar & c = image.at (y, x)' –
berak
Przepraszam, chciałem skomentować inną odpowiedź i +1. –