我试图从我读入opencv的图像中访问和修改像素值。我阅读了几篇关于如何做到这一点的帖子,但是,它们似乎对我不起作用。
我的代码:
int main()
{
Mat src=imread("/home/jaysinh/Pictures/shapes.jpg");
cout<<"rows:"<<src.rows<<endl;
cout<<"cols:"<<src.cols<<endl;
cout<<src.at<cv::Vec3b>(10,10)[0]<<endl;
waitKey(0);
return 0;
}
给我结果:
在此图像中,我试图查看图像中位置 (10,10) 的像素值。我试图输出图像的所有值,但它们看起来仍然像特殊字符。
我还尝试了 Scalar 和 unchar 类型而不是 Vec3b,但似乎没有什么能给我合适的值(0-255 之间)。类型 double 为每个像素位置提供 -NaN。我检查了图像的 src.type() 并返回了 16,我认为它是 16S 类型。
如何修改图像或以某种方式访问此类型的图像像素值并对其进行修改?
提前致谢!
(这是我试图访问的图像: