//Open the image
Mat img_rgb = imread("sudoku2.png", CV_LOAD_IMAGE_GRAYSCALE);
if (img_rgb.empty())
{
cout<<"Cannot open the image"<<endl;
return;
}
Mat img_bw = img_rgb > 128;
imwrite("image_bw.jpg", img_bw);
现在,我想得到img_bw的所有像素并将其保存到矩阵M( int [img_bw.rows] [img_bw.cols] )中。如何在C ++中完成。
答案 0 :(得分:0)
什么格式?
cv :: Mat中的原始字节数据可从.ptr()函数获得,即img_bw.ptr()。
Opencv还有一个xml和json的矩阵读写函数,只需使用&lt;&lt;运算符 - 请参阅opencv tutorial on xml and yaml i/o
编辑:在c ++中,您可以使用.at运算符访问像素。
将img_data.at<uchar>(x,y)
用于无符号字符(CV_8U)像素,将img_data.at<float>(x,y)
用于CV_32F图像。