これを行う簡単な方法があります。
Mat has Mat.dataは、元のデータマトリックスを参照するポインターを提供します。
n番目の行とm番目の列のピクセル値を取得するには、
Mat img = imread("filename.jpg",CV_LOAD_IMAGE_COLOR);
unsigned char *input = (unsigned char*)(img.data);
int i,j,r,g,b;
for(int i = 0;i < img.cols;i++){
for(int j = 0;j < img.rows;j++){
b = input[img.cols * j + i ] ;
g = input[img.cols * j + i + 1];
r = input[img.cols * j + i + 2];
}
}
だから、これはカラー画像についてです。グレースケール画像の場合、
Mat img = imread("filename.jpg",CV_LOAD_IMAGE_COLOR);
Mat g;
cvtColor(img, g, CV_BGR2GRAY);
unsigned char *input = (unsigned char*)(g.data);
int i,j,r,g,b;
for(int i = 0;i < img.cols;i++){
for(int j = 0;j < img.rows;j++){
g = input[img.cols * j + i];
}
}
このブログ投稿で詳細をお読みください。