0
    //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++ 中做到这一点。

4

1 回答 1

0

什么格式?

cv::Mat 中的原始字节数据可从.ptr() 函数获得,即img_bw.ptr()。

Opencv 还具有矩阵的 xml 和 json 读写函数,只需使用 << 运算符 - 请参阅opencv xml 和 yaml i/o 教程

编辑:在 c++ 中,您可以使用 .at 运算符访问像素。

用于img_data.at<uchar>(x,y)无符号字符 (CV_8U) 像素和img_data.at<float>(x,y)CV_32F 图像。

于 2012-05-09T03:39:22.687 回答