OpenCV实现任意图像像素矩阵获取

1. 安装 opencv

Debian下opencv的编译安装,参考文章:《Ubuntu12.04中编译安装OpenCV2.4.5》

下载示例程序(2014042400143966.cpp)

代码
int main(int argc, char *argv[])
{

  FILE *fp;
  IplImage* img = 0; 
  int height,width,step,channels;
  uchar *data;
  int i,j;

  if(argcheight;
  width     = img->width;
  step      = img->widthStep;
  channels  = img->nChannels;
  data      = (uchar *)img->imageData;
  printf("Processing a %dx%d image with %d channels\n",height,width,channels); 

  fp=fopen("cal.txt","w");
  // invert the image
  // 相当于 cvNot(img);
  for(i=0;i<height;i++) 
   { 
      fprintf(fp,"\n第%d行Data:",i+1);
      for(j=0;j<width;j++)
       {
          fprintf(fp,"%d ",data[i*step+j]);
      }
  }

  return 0;
}

2. 获取文件信息

图片

创建储存文件cal.txt,利用行列扫描的方式,实现数据的输出:

图片

3. 实验图像

图片

4. 编译输出

命令编译,以及程序输出控制,如下:

图片

通过查看文件中生成的cal.txt文件,便可以得到像素值:

图片