下载此文档

BMP图像由彩图变为灰度图.doc


文档分类:IT计算机 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
Date:6月21日任务:BMP真彩图像转为灰度图一,算法及公式:1,什么叫灰度图?任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:浮点算法:Gray=R*+G*+B*:Gray=(R*30+G*59+B*11)/100移位方法:Gray=(R*28+G*151+B*77)&gt;&gt;8;平均值法:Gray=(R+G+B)/3;仅取绿色:Gray=G;通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。2,改变象素矩阵的RGB值,来达到彩***转变为灰度图加权平均值算法:根据光的亮度特性,其实正确的灰度公式应当是R=G=B=R*+G*+,公式变形如下:R=G=B=(R*3+G*6+B)/103,真正的24位真彩图与8位的灰度图的区别就在于,真彩图文件中没有调色板,灰度图有调色板,真彩图中的象素矩阵是RGB值,灰度图中的象素矩阵是调色板索引值。源代码1只简单的改变象素矩阵的RGB值,来达到彩***转为灰度图,并没有添加调色板。源代码2添加了调色板。二,源代码1,//可以输入文件名的源代码,有些变量定义进行了完善#include""#include""#include""#include""#include""typedefstruct{ unsignedcharb; unsignedcharr; unsignedcharg;}pixel;pixela[640][480];unsignedcharaa[640][480];voidmain(){ BITMAPFILEHEADERFILEH; BITMAPINFOHEADERINFOH; RGBQUADRGBH[256]; charname[11]; char*fname[11]; printf("输入需要转换的图片名:"); scanf("%s",&name); *fname=name; strcat(*fname,".bmp"); printf("%s",*fname); FILE*fp; if((fp=fopen(*fname,"rb"))==NULL) { //if((fp=fopen(*fname,"wb"))==NULL)//防止首次进入时初始化失败//{ printf("打开文件%s失败!按任意键返回主菜单!",fname); getch(); exit(1); //} } printf("%s",*fname); intLEN1=sizeof(BITMAPFILEHEADER); intLEN2=sizeof(BITMAPINFOHEADER); intX,Y; printf("\nlen=%d,%d\n",LEN1,LEN2); fread(&FILEH,sizeof(BITMAPFILEHEADER),1,fp); fread(&INFOH,sizeof(BITMAPINFOHEADER),1,fp); X=; Y=; //printf("%d*%d",X,Y);if(!=0x4d42) { fclose(fp); printf("文件头不正确,不是bmp!"); exit(1); }if(!=24&&!=8) { fclose(fp); printf("信息头不正确,不是bmp!"); exit(1); } //*RGBH=A; unsignedcharblue,green,red,color; intj,k; if(==8) { fread(&RGBH,sizeof(RGBQUAD),256,fp); for(j=0;j<Y;j++) for(k=0;k<X;k++) { fread(&color,1,1,fp); red=RGBH[color].rgbRed; green=RGBH[color].rgbGreen; blue=RGBH[color].rgbBlue; aa[j][k]=(unsignedchar)(*(float)red+*(float)green+*(float)blue); } } if(==24) { for(j

BMP图像由彩图变为灰度图 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wenjun1233211
  • 文件大小56 KB
  • 时间2020-07-02