图像灰度化的方法及编程实现
更新时间:2023-08-15 15:34:01 阅读量: 人文社科 文档下载
图像灰度化
第15卷 第1期
2004年3月 广西工学院学报 Vol115 No11
JOURNALOFGUANGXIUNIVERSITYOFTECHNOLOGY Mar12004
文章编号 100426410(2004)0120023204
位图图像灰度化的方法及编程实现
游达章1,张建钢2,甘 勇3
(11湖北工学院机械工程学院,湖北武汉 430068;
21武汉科技学院机械系,湖北武汉 430000;31桂林电子工业学院机械系,广西桂林 541004)
摘 要:图像灰度化是许多数字图像处理的初始和基础工作,本文对灰度化的基本原理作了简要阐述,同时分别介绍了8位和24位彩色位图灰度化的具体方法,并给了实现详细代码。
关 键 词:灰度化;位图;方法;代码
中图分类号:TP31714 文献标识码:A
,,广泛运用在纺织、机械、信息科学、生物、、轮廓提取、图像增强等等热点问题的相关技术工作,。本文对彩色图像到灰度图像转变的实现方法作了详细的阐述。
1 彩色图像和灰度图像的基本概念及相互关系
位图图像一般分为单色图像、灰度图像和彩色图像。单色图像只有黑色和白色两种颜色,整个图像由单纯的黑色点和白色点组成。彩色图像的像素点是由R(红色)、G(绿色)、B(兰色)三元色混合而成的,不同含量的R、G、B组成不同的颜色,每一个记录单个像素的位数据单元可表示任意一种颜色。根据这个记录单个像素信息的位数据单元所占位数大小,可分为8位、16位、24位和32位等几种位图。8位位图是指图像一个像素点的颜色信息用8个位(一个字节)来表示;同样,16位位图用16个位(二个字节)来表示,其中R、G、B分别占5位,另外1位他用;24位位图用24个位(三个字节)来表示,其中R占8位、G占8位、B占8位。灰度图像与单色图像的区别是加上颜色深度的概念,单纯的看,灰度图也是黑白的,就像黑白电视显示的图像一样,但是点与点之间黑的程度是不一样的,这就是深度。如果称不同深度的颜色为一色的话,灰度图像就不止只有黑色和白色两种颜色,一般使用的灰度图为256级灰度图,就是说图像由256种不同灰度级的颜色组成[1]。
本文主要介绍对8位和24位两种最常使用彩色位图灰度化的方法。先简单介绍一下位图的结构,这对灰度化的方法有着重要的影响。位图文件结构按顺序一般包括位图文件头结构BITMAPFI位LEHEADER、图信息头结构BITMAPI位图颜色表GBQUAD和图像位数据4部分。对于8位位图的文件NFOHEADER、
结构,这4部分都包括。而24位位图则只包括文件头结构、信息头结构和位数据三部分。这是因为8位位图带有颜色表信息,对于8位位图,WINDOWS采用调色板技术来记录颜色信息,首先在颜色表结构中储存256种给定的彩色颜色,然后在数据位中用一个8位二进制数(值从0~28(256))来表示颜色表中的某一种具体的颜色,这个8位二进制数的实质就是一个索引,在显示颜色时通过这个索引来调用颜色板种对应颜色的R、8位G、8位B来表示,即一G、B值。而24位位图没有颜色表,如前所述,24位位图颜色信息由8位R、
个像素的颜色信息在数据位中直接用3个字节来表示,显示时直接使用R、G、B值,而不需要利用调色板来收稿日期:2004201213
作者简介:游达章(19752),男,湖北洪湖人,湖北工学院讲师,研究生。
图像灰度化
24广西工学院学报 2004年3月索引。因此,8位位图只能显示256种颜色,叫伪彩色,24位能显示224(约1600万)种颜色叫做真彩色。 彩色图像中像素点的R、蓝色为G、B分量是不等的,如红色用RGB结构来表示为RGB(255,0,0)、
而灰度像素点的R、RGB(0,0,255)。G、B的分量是相等的,既颜色中的含量R=G=B,用RGB表示为(0,0,
(1,1,1)……(255、0)、255、255),其中RGB(0,0,0)为黑色,RGB(255,255,255)为白色,界于两者之间的为
[2]灰度颜色。彩色位图与灰度位图的像素点的R、G、B分量之间有如下对应关系:R
G
B灰度=01299 01587 01
01299 01587 01114301299 01587 01RGB彩色
有了这个公式,就能将一副彩色图像转化为灰度图。又由于8位和24位位图颜色管理有基于调色板和不基于调色板的区别,它们的灰度化方法也不相同,下面分别介绍。
2 8位位图的灰度化
8位位图的文件结构中带有颜色表,表项改变为灰度级颜色,:图像颜色表中第100项的颜色,R(:
G
B=00 0111401299 01587 01114301299 01587 0134167 经过计算,R=132(近似值),G=132,B=132,于是将颜色表的第100项改设为RGB(132,132,132)。 灰度化8位位图的颜色表后,还要创建一个逻辑调色板,并将此逻辑调色板设为系统调色。这是因为图像的显示与WINDOWS编程有很大的关系,WINDOWS的应用程序都有自己的调色板,如果没有,默认为系统调色板。8位位图灰度化以后,要准确的显示,就要创建自己的逻辑调色板,并实现它,否则图像显示失真[3]。
实现代码(主要):
灰度化调色板。m_pPalette为调色板结构指针,设为已知,且指向调色板首地址。m_Palette为一逻辑调色板对象
for(inti=0;i<255;i++)
{
intgray=0.303m_pPalette[i].rgbRed+0.593m_pPalette[i].rgbGreen+0.113m_pPalette [i].rgbBlue;m_pPalette[i].rgbRed=m_pPalette[i].rgbGreen=m_pPalette[i].rgbBlue=gray; 创建逻辑调色板
LOGPALETTE3pLogPal=(LOGPALETTE3)newchar
[sizeof(LOGPALETTE)+2563sizeof(PALETTEENTRY)];
pLogPal2>palPalEntry[i].peRed=pLogPal2>palPalEntry[i].peGreen=pLogPal2>palPalEntry [i].peBlue=gray;
}
m_Palette.CreatePalette(pLogPal);
delete[]pLogPal;
实现逻辑调色板
CPalette3pOldPalette;
pOldPalette=pDC_>SelectPalette(&m_Palette,FALSE);
pDC2>RealizePalette();
pDC2>SelectPalette(pOldPalette,FALSE)
图像灰度化
显示图像。m_pBIH为图像信息头结构,m_pDibBits为指向位数据首地址指针,已知
StretchDIBits(pDC2>m_hDC,nX,nY,nWidth,nHeight,0,0,m_pBIH2>biWidth,m_pBIH2> biHeight,m_pDibBits,(BITMAPINFO3)m_pBIH,BI_RGB,SRCCOPY);
3 24位位图的灰度化
24位位图的灰度化有两种方案,第一种是将图像位数据中的数据编码方式改变,直接变为灰度颜色,因为24位位图用3个字节来记录颜色信息,且不需要调色板操作,操作相对简单。具体实现方法为:找到位数据初始地址指针m_pDibBits,设置一指针变量m_pLine,分配内存空间,从m_pDibBits开始将每三个字节读取每个像素的R、G、B值,计算灰度后再每三个字节依次填入到分配的内存中,最后将m_pLine值赋予m_pDibBits。代码如下:
inti;
intm_heith=GetHeight();intm_width=GetWidth();
unsignedchar3m_pLine=newunsignedchar[heith_w3 m_pLine=m_pDibBits;
for(i=m_heith-1;i>=0;i-)
{
tj_w-1;j+)
intgray=
3(m_pDibBits+i3m_width33+j33+0)30.30+3(m_pDibBits+i3m_ width33+j33+1)30.59+3(m_pDibBits+i3m_width33+j33+2)30.11; 3(m_pLine+i3m_width33+j33+0)=3(m_pLine+i3m_width33+j33 +1)=3(m_pLine+i3m_width33+j33+2)=gray;
}
}
m_pDibBits=m_pLine;
第二种方法是将24位真彩色位图变为8位的灰度图,这个转变要复杂一些。在此介绍基本的原理和主要的步骤。首先得创建位图的颜色表,共256个,顺序排列,如(0,0,0),(1,1,1)、……(255,255,255)。然后根据这个颜色表来创建一个逻辑调色板,实现这个逻辑调色板为系统调色板。这两部分代码如同8位处理。第三步就要改写位数据了。像第一种方法一样,只不过分配内存是原来的1 3,此时R=G=B,只用一个字节记录即可,从m_pDibBits依次读取每个像素的R、G、B值,计算灰度后再将这个灰度值直接每字节顺序填入到分配的内存中。第四步就要改变文件信息头中相关信息,此时该图像大小已应变为:信息头结构大小+颜色表结构大小+256(RGBQUAD)结构大小+图像大小。3;所以其信息头中的biSizeImage应为原来的1 biBitCount应为8。这样就完成由24位到8位的转变。此方法比较第一种,虽然操作复杂,但能节约空间。4 结束语
目前对灰度图像的运用越来越多,本文对8位和24位两种最常用的位图图像灰度化作了详细的介绍。同时,对推导其他类型图像的灰度化方法,对灰度数据的保存和写位图文件,以及利用灰度图像开发等其他工作奠定了基础。文中代码在VC++610上经调试、运行通过。
图像灰度化
[ 参 考 文 献 ]
[1]李于剑1VisualC++实践与提高——图形图像编程篇[M]1北京:中国铁道出版社,20011
[2]何 斌,马天予1VisualC++数字图像处理(第二版)[M]1北京:人民邮电出版社,20021
[3]阮秋琦1数字图像处理学[M]1北京:电子工业出版社,20011
Awayofgrayingtheimageofabitmap
andtherealizationofprogramming
123YOUDa2zhang,ZHANGJian2gang,GANYong
(1.MechanicalEngineeringDepartment,Hubei,China;
2.Dept.ofMachinery,WuhanInstituteof,HChina;3.Dept.ofMachinery,Guof,iGuilin541004,China)
Abstract:Tingandfoundamentalworkofprocessingdigitalimages.Thearticlebbasicprinciplesofgraying,andintroducesaspecificwayofgraying82bitand242bitcolourbitmaps.AndthedetailVC++codesaregiven.
Keywords:graying;bitmap;method;code
(责任编辑 赖君荣)
(上接第22页)
AmethodofenquiringindexbasedonXML
YUANQing2neng,TANGPei2he
(Dept.ofComputerEngineering,GuangxiUniversityofTechnology,Liuzhou545006,China)
Abstract:InaccordancewiththecharacteristicsofXMLfile,amethodofbuildingupanindexforXMLfileisgiven.Thestructureofdataandthealgorithmusedinthemethodhavetheadvantagesofimprovingtheaccuracyofenquiring,havinglessindexredundancyandquicklyenquiringundertheconditionofmakingfulluseofthecontextinformationinthetagofXMLfile.
Keywords:XML;tag;index;invertedlist;enquir
(责任编辑 赖君荣)
正在阅读:
图像灰度化的方法及编程实现08-15
《个性化》读后感10篇12-12
2018年中国高晶拉丝模市场研究报告目录12-03
2018年中国人力资源服务现状调研及市场前景预测(目录) - 图文01-29
托幼机构卫生保健管理制度05-08
课题三 低压开关10-09
儒学的发展历程09-16
公司财务规范化管理基础知识05-24
临江街道东庄村2011年信访工作总结10-28
大学生的社会比较与情绪健康05-10
- 粮油储藏基础知识
- 论文范文(包括统一封面和内容的格式)
- 经典解题方法
- 综合部后勤办公用品管理办法+领用表
- 学生宿舍突发事件应急预案
- 16秋浙大《生理学及病理生理学》在线作业
- 四分比丘尼戒本(诵戒专用)
- 浙江财经大学高财题库第一章习题
- 九大员岗位职责(项目经理、技术负责人、施工员、安全员、质检员、资料员、材料员、造价员、机管员)
- 旅游财务管理习题(学生版)
- 德阳外国语高二秋期入学考试题
- 投资学 精要版 第九版 第11章 期权市场
- 控制性详细规划城市设计认识
- bl03海运提单3国际贸易答案
- 2010-2011学年湖北省武汉市武珞路中学七年级(上)期中数学试卷
- VB程序填空改错设计题库全
- 教师心理健康案例分析 - 年轻班主任的心理困惑
- 民间借贷司法解释溯及力是否适用?
- 三联书店推荐的100本好书
- 《化工原理》(第三版)复习思考题及解答
- 灰度
- 图像
- 编程
- 实现
- 方法
- 5.印广法师专访系列之五:了义法与不了义法、法华道场宗旨
- 如何编制发改委立项用热镀焊管项目可行性研究报告(甲级-发改委-经信委-商务局-备案-核准)
- 星火高频词汇
- 地方政府公信力缺失的现状及原因分析
- 椎动脉开口狭窄的血管内支架成形术治疗
- 钢结构工地进程预算表
- 锅炉管质保书样本
- 离散数学第七章 计数
- 业绩超预期,基本面 政策面双重驱动
- 北京邮电大学第六届“研究生学术论坛”参赛手册
- 交通费、通讯费、招待费标准及相关管理规定
- cocoa异步请求 and libxml2.dylib
- 实用文档之老年人心理健康调查问卷
- 郑东新区2013年小学科学教师课堂达标笔答试题
- 2013工程硕士(GCT)——我的考研经验
- 财务人员用数字字帖和大写字帖及教程
- 雷锋就活在人们日常道德生活中——雷锋精神产生久远影响的原因探析
- 电泳涂漆铝型材铜加速乙酸盐雾试验研究
- 高考作文(3)
- 中国中央银行独立性问题