BMP图像处理软件的设计和实现(中英文翻译)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
译文
BMP图像处理软件的设计与实现
摘要
随着时代的发展,科技的进步,一些简单的图片已经不能满足人们的需求。图像运用的扩大与对图像本身的精益求精,使人们越来越依赖于各种图像处理软件,各种图像处理软件也越来越完善,普及程度不断的提高。
C++是可视化的快速应用程序开发语言,它提供了可视化的集成开发环境,这一环境为应用程序设计人员提供了一系列灵活而先进的工具,可以广泛地用于种类应用程序设计。在Visual C++的集成开发环境中,用户可以设计程序代码、运行程序、进行程序错误的调试等,可视化的开发方法降低了应用程序开发的难度。Visual C++的基础编程语言是具有面向对象特性的C++语言,C++具有代码稳定、可读性好、编译速度快,效率高等优点,并将面向对象的概念得到充分的发挥,使这种语言有了全新的发展空间。
文章用Visual C++作为开发工具,设计了一个BMP图像处理软件。本图像处理软件实现对BMP图像的基本操作,如图像的打开,关闭,保存,图像的基本处理,如图像放大、缩小、旋转、转置、二值化处理、中值滤波、边缘检测、直方图、图像的腐蚀与膨胀以及马赛克效果等等。
BMP是bitmap的缩写,即为位图图片。位图图片是用一种称作“像素”的单位存贮图像信息的。这些“像素”其实就是一些整齐排列的彩色(或黑白)点,如果这些点被慢慢放大,就会看到一个个的“像素”中添充着自己的颜色,这些“像素”整齐地排列起来,就成为了一幅BMP图片,并以.bmp(.rle,.dib等)为扩展名。BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows 环境下运行的所有图象处理软件都支持BMP图象文件格式。BMP:Windows位图可以用任何颜色深度(从黑白到24位颜色)存储单个光栅图像。Windows 位图文件格式与其他Microsoft Windows 程序兼容。它不支持文件压缩,也不适用于Web 页。从总体上看,Windows 位图文件格式的缺点超过了它的优点。
图像处理方法的研究源于两个主要应用领域:其一是为了便于人们分析而对图像信息进行改进;其二是为使机器自动理解而对图像数据进行存储、传输及显示。
一幅图像可定义为一个二维函数f(x,y),这里x和y是空间坐标,而在任何一对空间坐标(x,y)上的幅值f称为该点图像的强度或灰度。当x,y和幅值f为有限的、离散的数值时,称该图像为数字图像。数字图像处理是指借用数字计算机处理数字图像,值得提及的是数字图像是由有限的元素组成的,每一个元素都有一个特定的位置和幅值,这些元素称为图像元素、画面元素或像素。像素是广泛用于表示数字图像元素的词汇。
图像处理涉及的范畴或其他相关领域(例如,图像分析和计算机视觉)的界定在初创人之间并没有一致的看法。有时用处理的输入和输出内容都是图像这一
特点来界定图像处理的范围。我们认为这一定义仅是人为界定和限制。例如,在这个定义下,甚至最普通的计算一幅图像灰度平均值的工作都不能算做是图像处理。另一方面,有些领域(如计算机视觉)研究的最高目标是用计算机去模拟人类视觉,包括理解和推理并根据视觉输入采取行动等。这一领域本身是人工智能的分支,其目的是模仿人类智能。人工智能领域处在其发展过程中的初期阶段,它的发展比预期的要慢的多,图像分析(也称为图像理解)领域则处在图像处理和计算机视觉两个学科之间。
1.图像处理涉及的领域:
图像获取是第一步处理。注意到获取与给出一幅数字形式的图像一样简单,通常,图像获取包括如设置比例尺等预处理。
图像增强是图像处理最简单和最有吸引力的领域。基本上,增强技术后面的思路是显现那些被模糊了的细节,或简单地突出一幅图像中感兴趣的特征。
图像复原也是改进图像外貌的一个处理领域。然而,不像增强,图像增强是主观的,而图像复原是客观的。在某种意义上说,复原技术倾向于以图像退化的数学或概率模型为基础,另一方面,增强以怎样构成好的增强效果的主观偏爱为基础。
彩色图像处理已经成为一个重要领域,因为基于互联网的图像处理应用在不断增长。就使得在彩色模型、数字域的彩色处理方面涵盖了大量基本概念,在后续发展,彩色还是图像中感兴趣特征被提取的基础。
小波是在各种分辨率下描述图像的基础。特别是在应用中,这些理论被用于图像数据压缩及金字塔描述方法。在这里,图像被成功地细分为较小的区域,压缩,正如其名称所指的意思,所涉及的技术是减少图像的存储量,或者在传输图像时降低频带。
形态学处理设计提取图像元素的工具,它在表现和描述形状方面非常有用,从输出图像处理到输出图像特征处理的转换。
分割过程将一幅图像划分为组成部分或目标物。通常,自主分割是数字图像处理中最为困难的任务之一,复杂的分割过程导致成功解决要求物体被分别识别出来的成像问题需要大量处理工作。另一方面,不健壮且不稳定的分割算法几乎总是会导致最终失败。通常,分割越准确,识别越成功。
2.图像处理功能模块中涉及的某些重要算法:
中值滤波:中值滤波是一种非线性数字滤波器的信号并且能够保持锋利变化,在去除脉冲噪声方面非常有效(或椒盐噪声)。较高的脉冲噪声的灰度低,它不同于附近点。线性过滤器没有能力去除这种噪声没有影响区分的特征信号,中位数过滤器有显著优势在这个特定类型的噪声线性过滤器。因此,中值滤波器在数字信号和图像/视频处理应用程序方面应用非常广泛。
标准中值操作由滑动窗口实现起一个图像的大小。在每个窗口位置信号的采样值中排序并且用样品的中值作为输出,取代了样本中心的窗口。
中值滤波的主要问题是它的高计算成本(排序N像素,时间复杂度是0(N log N),即是最有效的排序算法),在中值滤波进行了实时软件实现的过程中,通用处理器通常不会给出好的结果。
中值滤波器的初始版本是使用VC++语言编程,所以它的操作是可以验证的,其结果能跟硬件版本相比较,后线代表中值滤波器的伪代码。
形态学运算:形态学图像处理是指一个类的算法应用于一个图像的几何结构,还可以用于二进制和形态灰度图像,还应用于许多图像处理的领域,如骨架化、边缘检测、修复和纹理分析。
形态学算子使用结构化元素来处理一个图片。结构元素是在一个图像窗口上扫描,这种类似的使用的中值滤波器结构元素可以是任何大小像素窗口,但3 x3和5 x5的大小是最常见的。当结构元素扫描一个元素的形象,构建元素符合或
不符合图,演示了合适的结构元素的概念,而不是关联在一个图像对象中。
最基本的许多形态运算是侵蚀和构建块扩张。侵蚀顾名思义是萎缩或侵蚀一个对象在一个图像,扩张是另一方面生长图像对象,依赖于这两个对象结化元素以及它的对象。例如,如果侵蚀二进制图像,合成图像是有每个前景像素的中心像素,其结构化元素适合其形象,如果应用扩张,将输出每个前景像素点的结构元素。
其中重要的操作就像打开和关闭一个图像可以通过执行侵蚀和扩张来进行,如果侵蚀后面接着扩张,由此产生的操作被称为开放,关闭操作扩张侵蚀。这两个次级形态操作可用于图像恢复,和他们进一步迭代使用能产生最佳的结果等,就像输入图像的骨架化。