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

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

ID:28097844

大小:29.50 KB

页数:16页

时间:2018-12-08

BMP图像由彩图变为灰度图.doc_第1页
BMP图像由彩图变为灰度图.doc_第2页
BMP图像由彩图变为灰度图.doc_第3页
BMP图像由彩图变为灰度图.doc_第4页
BMP图像由彩图变为灰度图.doc_第5页
资源描述:

《BMP图像由彩图变为灰度图.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Date:6月21日任务:BMP真彩图像转为灰度图一,算法及公式:1,什么叫灰度图?任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:浮点算法:Gray=R*0.3+G*0.59+B*0.11整数方法:Gray=(R*30+G*59+B*11)/100移位方法:Gray=(R*28+G*151+B*77)>>8;平均值法:Gray=(R+G+B)/3;仅取绿色:Gray=G;通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用

2、Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。2,改变象素矩阵的RGB值,来达到彩色图转变为灰度图加权平均值算法:根据光的亮度特性,其实正确的灰度公式应当是R=G=B=R*0.299+G*0.587+B0.144为了提高速度我们做一个完全可以接受的近似,公式变形如下:R=G=B=(R*3+G*6+B)/103,真正的24位真彩图与8位的灰度图的区别就在于,真彩图文件中没有调色板,灰度图有调色板,真彩图中的象素矩阵是RGB值,灰度图中的象素矩阵是调色板索引值。源代码1只简单的

3、改变象素矩阵的RGB值,来达到彩色图转为灰度图,并没有添加调色板。源代码2添加了调色板。二,源代码1,//可以输入文件名的源代码,有些变量定义进行了完善#include"stdio.h"#include"stdlib.h"#include"string.h"#include"windows.h"#include"conio.h"typedefstruct{unsignedcharb;unsignedcharr;unsignedcharg;}pixel;pixela[640][480];unsignedcharaa[640][480];voi

4、dmain(){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)//防止首

5、次进入时初始化失败//{printf("打开文件%s失败!按任意键返回主菜单!",fname);getch();exit(1);//}}printf("%s",*fname);intLEN1=sizeof(BITMAPFILEHEADER);intLEN2=sizeof(BITMAPINFOHEADER);intX,Y;printf("len=%d,%d",LEN1,LEN2);fread(&FILEH,sizeof(BITMAPFILEHEADER),1,fp);fread(&INFOH,sizeof(BITMAPINFOHEAD

6、ER),1,fp);X=INFOH.biWidth;Y=INFOH.biHeight;//printf("%d*%d",X,Y);if(FILEH.bfType!=0x4d42){fclose(fp);printf("文件头不正确,不是bmp!");exit(1);}if(INFOH.biBitCount!=24&&INFOH.biBitCount!=8){fclose(fp);printf("信息头不正确,不是bmp!");exit(1);}//*RGBH=A;unsignedcharblue,green,red,color;intj,k

7、;if(INFOH.biBitCount==8){fread(&RGBH,sizeof(RGBQUAD),256,fp);for(j=0;j

8、(INFOH.biBitCount==24){for(j=0;j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。