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

  1. 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;
}
  1. 获取文件信息:

图片

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

图片

  1. 实验图像:

图片

  1. 命令编译,以及程序输出控制:

图片

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

图片

评论 (0)

暂无评论,快来抢沙发吧!

发表评论