基于QT数字图像灰度化处理程序设计是关于数字图像方面的论文题目、论文提纲、数字图像处理论文开题报告、文献综述、参考文献的相关大学硕士和本科毕业论文。
[摘 要]介绍了使用QT对BMP图像进行灰度化处理的相关概念和方法.根据BMP格式图像的格式类型和存储原理,介绍对BMP格式图像进行读取和写入方法,并在此基础上介绍了对BMP图片进行灰度化的方法.
[关键词]数字图像;灰度化处理;QT;C++;位图
大家生活中很多情况下需要将一张彩色的图片转变成黑白的图片,也就是灰度图,但是大部分人都是直接使用PS或美图秀秀这些图片处理的软件进行,而对图片灰度化的过程不是十分了解甚至一无所知.很多时候我们需要把彩 像转换为黑白图像然后进行相关的计算等.而QT的界面设计使得开发带界面的软件更为方便,且可用C++语言编写,运行效率高,执行速度快,适合图像处理.因此用QT开发一款图像灰度化的处理程序十分方便也能帮助我们理解灰度化的原理和过程.
1.灰度化原理
生活中,我们见到的大部分物品都是彩色的,我们生活在一个五颜六色的世界中,我们通常用来描述一个物体的颜色的诸如赤、橙、黄、绿、青、蓝、紫这些颜色名词有很多,但是即使是这样,仍然不能涵盖自然界的所有颜色或者说即使用这些词来描述一个物体的颜色仍旧不能描述得很准确.其实每一种复杂的颜色都是可以用红绿蓝这三种颜色按照不同的比例调配出来的,所以不同的颜色种类根据三种颜色所占比例的不同是不同的,数量是非常大的.
同样,不同的色光还有不同的亮度,同样是红色,有的比较亮,有的比较暗.由此可见,颜色是无穷无尽的,那黑白图像又是怎么一回事呢?图像的灰度化的原理又是什么呢.
其实图像灰度化就是根据公示计算出每个像素点的亮度,从而直接用亮度来表示图片,而不是用以前的R(红)、G(绿)、B(蓝)值.计算公示如下:
这是一个矩阵计算公示,公式中的Y就是亮度值,实际上就是通过原像素点的红绿蓝的值计算出亮度值.通常灰度图的数据用8位进行存储,这样的图片灰度有256级,也就是说这种灰度化的图片中包含256中不同亮度的像素点,255是白色,0是黑色,中间是不同程度的灰色.
而对于不同位数的BMP图像的灰度化过程也是不同的.
对于24位的BMP图像只需要通过公式 Y等于0.299R+0.587G+0.144B计算出各像素点的亮度值,然后将亮度值附给该点的RGB值即R等于B等于G等于Y就行了.
而对于其他位数的灰度化也有两种方法.如对于8位的BMP图像
Ⅰ.获取第一个颜色表项中的RGB值,然后利用公式Y等于0.299R+0.587G+0.144B计算出该颜色的亮度值Y,并令该颜色表项的RGB值都等于此亮度值Y.同理,再完成对剩余所有颜色表项的处理,便可实现灰度化.
Ⅱ.在8位BMP文件的位图数据中,首先获取任意第i行,第j列像素点的颜色表索引值index,根据该索引值找到和其对应的颜色表项color[index],并获取该颜色表项的RGB值,然后利用公式Y等于0.299R+0.587G+0.144B计算出该颜色的亮度值Y,再令index等于Y;在完成上述处理之后,再对颜色表项按顺序灰度化,即color[index]的R等于G等于B等于index.至此,8位BMP文件的位图数据就表示每个像素真实的亮度值.这里介绍的示例程序采用上述方法ii实现灰度化.
2.程序设计步骤
程序是基于QT设计的,使用C++编程语言,所以设计过程包括界面设计和程序设计思路.
2.1程序界面设计
程序需要用户输入数据,故设计用户数据接口即可.
2.2程序流程设计
程序设计的实现过程为:
(1)读取BMP文件的文件头、信息头、颜色表、像素点数据等位图数据.
其中QT中封装的获得文件名代码如下:
namebmp等于QFileDialog::getOpenFileName(this,"打开bmp文件","/","files(*.bmp)");//获得bmp文件名
(2)根据灰度化原理进行处理,
对8比特的BMP图片进行灰度化的代码如下:
for(inti等于0;i { for(intj等于0;j { index等于data[i][j]; ////////24bit if(Bitmapinfoheader.biBitCount等于等于24) { doubley3等于0.299*data[i][j*3]+0.587*data[i][3*j+1]+0.114*data[i][3*j+2]; inty4等于(int)((y3+0.5)*10/10.0); if(ui->checkBox->isChecked()) y4等于255; data[i][j*3]等于y4; data[i][j*3+1]等于y4; data[i][j*3+2]等于y4; } ////////8bit if(Bitmapinfoheader.biBitCount等于等于8) y0等于0.299*Rgbquad[index].rgbRed+0.587*Rgbquad[index].rgbGreen+0.114*Rgbquad[index].rgbBlue; (3)将新图片数据写到新文件中. ///////写新文件 FILE*fp1; fp1等于fopen((dir1+"/"+name1).toStdString().c_str(),"wb"); fwrite(&Bitmapfileheader,14,1,fp1); fwrite(&Bitmapinfoheader,40,1,fp1); ///////8bit if(Bitmapinfoheader.biBitCount等于等于8) { fwrite(Rgbquad,4*colornum,1,fp1); for(intn等于0;n fwrite(data[n],w1,1,fp1); } 3.程序测试实验 本实验用的是500乘500的8位BMP格式的彩 像. 灰度化结果如图2所示 4.其他 这里只介绍了8比特彩 像的灰度化,在进行4比特图像的灰度化的过程中时要注意数据部分中,每个字节中包含两个像素的索引值,每次读出一个字节后需要进行处理. 总结:这是一篇与数字图像论文范文相关的免费优秀学术论文范文资料,为你的论文写作提供参考。 参考文献: 1、 数字图像检测技术在施工监控中应用可行性 摘 要:随着我国经济和科技的日益发展,传统施工监控技术已经越来越难满足工程需要。工程从业人员迫切希望得到一些可靠的高新技术手段来解决这一难题。而。 2、 沥青路面离析的数字图像评价方法 摘要:为快速有效评价沥青路面的离析程度,文章采用数字图像技术研究沥青路面的非均匀性 文中分析了常用的沥青路面离析的图像处理评价方法的不足,提出了。 3、 数字图像处理课程混合式学习环境创设 摘要:文章结合《数字图像处理》课程建设,探讨和分析了关于混合式学习环境的创设,以期通过对学习环境创设来进一步提高混合式学习效果,并综合性地提出了。 4、 数字图像处理技术与应用 摘要:数字图像处理技术伴随着计算机技术的发展和人们对图像处理的需要而产生,在现代生产生活中扮演者重要角色。文章简要概述了数字图像处理技术的重要性。 5、 图像空间营造地铁车站空间设计手法 车站“小宇宙”车站大到火车站,小到地铁站,汽车站,总给人一种特别的感觉。人们或三三两两,或独行的来来往往、行路匆匆。车站内人与人之间擦肩而过,短。 6、 销售人员结构化面试题设计三部曲 提升企业销售人员招聘效度的关键在于设置统一的情景面试题目,通过有区分度的题目,能够有效考察人选的胜任力素质,进而实施规模化的人员招聘。在销售人员。