如何将彩色图像转换为二维数组??

转换为灰度图是二维数组,怎么把它又还原成成彩色图像呢?... 转换为灰度图是二维数组,怎么把它又还原成成彩色图像呢? 展开
 我来答
匿名用户
推荐于2016-04-28
展开全部
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);//关闭文件
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式