在opencv中获取图像矩阵

时间:2012-05-09 03:14:51

标签: opencv matrix

    //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 ++中完成。

1 个答案:

答案 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图像。