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読み取りおよび書き込み関数もあります-xmlおよびyaml i/oに関するopencvチュートリアルを参照してください

編集: C++ では、.at 演算子を使用してピクセルにアクセスできます。

img_data.at<uchar>(x,y)unsigned char (CV_8U) ピクセルとimg_data.at<float>(x,y)CV_32F イメージに使用します。

于 2012-05-09T03:39:22.687 に答える