2012-05-09 2 views
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 ( ИНТ [img_bw.rows] [img_bw.cols]). Как это сделать на C++.получить матрицу изображения в OpenCV

ответ

0

Какой формат?

Необработанные байтовые данные в cv :: Mat доступны из функции .ptr(), т.е. img_bw.ptr().

OpenCV также имеет XML и JSON функции чтения и записи для матриц, только с помощью оператора на < < - см opencv tutorial on xml and yaml i/o

EDIT: В C++ вы можете получить доступ к пикселей с оператором .at.

Использовать img_data.at<uchar>(x,y) для пикселя без знака (CV_8U) и img_data.at<float>(x,y) для изображения CV_32F.

+0

Я имею в виду, как получить пиксель в случайном положении: D. Извините, что я плохо выражаю. – logger