C语言里 灰度图像怎么转换为二维数组?

求源码... 求源码 展开
 我来答
tattackor
推荐于2017-10-15 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:883万
展开全部

1、步骤大概这样
  第一步:读取图像数据到内存
  第二步:读取文件头
  第三步:读取信息头
  第四步:读取图像矩阵到二维数组
2、例程:

  FileName=fileDlg.GetFileName ();
  FILE *fp=fopen(FileName,"rb");//二进制读方式打开指定的图像文件
  fread(&FileHead, sizeof(BITMAPFILEHEADER), 1,fp); //读取文件头,文件指针自动后移
  fread(&InfoHead, sizeof(BITMAPINFOHEADER), 1,fp);//读取信息头,文件指针自动后移
  //获取图像宽、高、每像素所占位数等信息
  bmpWidth = InfoHead.biWidth;
  bmpHeight = InfoHead.biHeight;
  //下面完成图像数据向内存数组的存储
  ImageData=new unsigned char*[bmpHeight];
  if(InfoHead.biBitCount==24)
  {
  for (int i=0;i<bmpHeight;i++)
  {
  ImageData[i]=new unsigned char[(bmpWidth*3+3)/4*4];
  }
  for (int k=0;k<bmpHeight;k++ )
  {
  for(int j=0;j<(bmpWidth*3+3)/4*4;j++)
  {
  fread(&ImageData[k][j],1,1,fp);//上面完成动态二维数组的申请,这里实际读取图像数据
  }
  }
  fclose(fp);//关闭文件
zhoukehu123456
推荐于2017-09-05
知道答主
回答量:33
采纳率:0%
帮助的人:10.3万
展开全部

  网上源码太多了,步骤大概这样

  第一步:读取图像数据到内存


  第二步:读取文件头

  第三步:读取信息头

  第四步:读取图像矩阵到二维数组

  ...

  FileName=fileDlg.GetFileName ();

  FILE *fp=fopen(FileName,"rb");//二进制读方式打开指定的图像文件


  fread(&FileHead, sizeof(BITMAPFILEHEADER), 1,fp); //读取文件头,文件指针自动后移

  fread(&InfoHead, sizeof(BITMAPINFOHEADER), 1,fp);//读取信息头,文件指针自动后移

  //获取图像宽、高、每像素所占位数等信息


  bmpWidth = InfoHead.biWidth;

  bmpHeight = InfoHead.biHeight;

  //下面完成图像数据向内存数组的存储


  ImageData=new unsigned char*[bmpHeight];


  if(InfoHead.biBitCount==24)

  {


  for (int i=0;i<bmpHeight;i++)

  {


  ImageData[i]=new unsigned char[(bmpWidth*3+3)/4*4];

  }


  for (int k=0;k<bmpHeight;k++ )

  {


  for(int j=0;j<(bmpWidth*3+3)/4*4;j++)

  {

  fread(&ImageData[k][j],1,1,fp);//上面完成动态二维数组的申请,这里实际读取图像数据

  }

  }

  fclose(fp);//关闭文件

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友98e2dd0
2014-09-25 · TA获得超过211个赞
知道答主
回答量:28
采纳率:0%
帮助的人:12万
展开全部
用MATLAB只需要一条语句
aa=imread(‘’图片名字.tif‘’)
追问
我知道MATLAB可以  我现在要在C里实现啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2014-09-26 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3702万
展开全部
普通都是一维数组访问图象数据,如果你原意,可以开设个二维数据指针并指向图象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式