基于vb的图像预处理内容摘要:

” 属性改为 “ 是一个按钮 ” ,然后看看 “ 窗体设计区域 ” 的按钮上显示的文字是不是改变了 [5]。 如下图 24: 图 24 属性窗口示意图 调整程序运行时,程序窗体 在屏幕中的初始位置,把鼠标移到左图屏幕中的窗体上,这时鼠标会变成移动形状,拖动窗体,就设置好了运行时此窗体的位置。 工具箱实际上是一个窗口,称为工具箱窗口,可以通过单击其右上角的“ X” 关闭,如果想打开工具箱,则可以执行 【 视图 】 菜单中的 【 工具箱 】 命令或单击标准工具栏中的 【 工具箱 】 按钮。 如下图 24: 通过运用工具箱中的工具 (或称 作 控件 )来向窗体上添加用户界面元素。 想打开工具箱时,单击工具条上的 ToolBox(工具箱 )按钮。 典型情况下,工具箱放置在屏幕的左部。 工具箱中包含了可以添加到用户界面中的各种 控件:图片、标签、按钮、列表框、滚动条、菜单以及几 何图形等。 添加到窗体上的每个控件都变成了应用程序中的对象,或称 作 可编程用户界面元素。 在程序运行时用户就会看到这些界面元素,并能够像其它 Windows 应用程序中的标准对象那样进 哈尔滨理工大学学士学位论文 8 行操作。 注 你可以把工具箱移动到其它位置,方法是单击工具箱的标题,然后拖曳工具箱。 工具箱还包含了一些特殊控件,利用它们可以在 Visual Basic 程序中创建执行特殊 “ 后台 ” 操作的对象。 这些功能强大的对象完成非常有用的功能,但程序运行时用户并不能在界面中看到它们。 这些对象包括:操作数据库信息的对象、协同 Windows 应用程序工作的对象、跟踪程序运行时间的对象等。 通过把鼠标指针放置在工具箱中控件上并稍微停留,系统就会显示相应控件的名称 [6]。 图 25 工具箱示意图 代码程序窗口是专门用来进行程序设计的窗口,显示和编辑程序代码,如下图所示。 用户可以打开多个代码窗口,查看不同窗体、标准模块中的代码,并可在各个窗口间复制代码。 打开代码窗口有以下三种方法: ,并选择【查看代码】按钮; ,双击一个控件或窗体本身 ; 【视图】菜单中选择【代码窗口】命令。 代码窗口只要包括: 1.【对象列表】显示所选对象的名称。 可以单击邮编的下拉按钮,来显示此窗体中的对象名。 其中【通用】表示与特定对象无关的通用代码,一般在此声明模块级变量或用户编写自定义过程。 2.【过程列表框】列出所有对应于【对象列表框】对象的事件过程名称 (还可以显示用户自定义过程名 )。 在【对象列表框】中选择对象名,在【过程列表框】中选择时间过程名,即可以构成选中对象的事件过程模板。 用户可在该模 哈尔滨理工大学学士学位论文 9 板内输入代码。 其中【声明】表示声明模板级变量。 3.【代码】输入程 序代码。 4.【过程查看按钮】只能显示所选的一个过程。 5.【全模板查看按钮】显示木块中全部过程。 界面设计 根据需要在窗体上配置必要的控件: 第一步,启动 Visual ,选择【标准 EXE】创建新工程。 第二步,通过工具箱,在 Form1 中创建一个【 PictureBox】控件,创建四个CommandButton 控件,分别是【 Command1】、【 Command2】、【 Command3】、【 Command4】,并且在【菜单栏】点击【工程】选择【部件】,添加一个【 CommonDialog】控件,将 其添加到 Form1 中。 第 三 步 , 分 别 将 【 Command1 】、【 Command2 】、【 Command3 】、【 Command4】四个命令按钮通过属性窗口的【 Caption】改成【选取文件】、【读图像】、【显示】、【退出】。 第四步,在【属性窗口】中选择【 PictureBox1】,然后将其【 ScaleMode】改成【 Pixel】 [7]。 读取 BMP 图像文件窗体格式的界面设计图像如下图 26: 图 26 界面设计示意图 图片框 (PictureBox 控件 )用于显示图像 ,命令按扭 Command1【 选择文件 】用于选 择指定图像文件,命令按扭 Command2【 读图像 】 用于读入图像数据并存入数组,命令按钮 Command3【显示】将图像显示在图片框中,命令按扭Command4【 退出 】 用于退出该窗体 [8]。 哈尔滨理工大学学士学位论文 10 读取图像文件的程序设计 数字图像文件格式 数字图像 (以下简称图像 )有多种存储格式,每种格式一般由不同的开发商支持。 随着信息技术的发展和图像应用领域的不断拓宽,还会出现新的图像格式。 因此,要进行图像处理,必须了解图像文件的格式,即图像文件的数据构成。 每一种图像文件均有一个文件头,在文件头之后才是图像数据。 文件头的内容制作该图 像文件的公司决定,一般包括文件类型、文件制作者、制作时间、版本号、文件大小等内容。 各种图像文件的制作还涉及到图像文件的压缩方式和存储效率等等。 数字图像文件类型 一幅图像由许多像素点表示,每个像素具有颜色属性和位置属性。 根据图像像素的颜色分类,可将图像分为如下四种类型: 每个像素点只有黑白两种灰度值,因此一个像素仅占 1bit, 0 表示黑, 1 表示白,或相反。 常把单色图像称为 1 位图像,或二值图像。 在图像处理过程中,常把图像转为二值图像后进行各种分析。 度图像 每个像素点有 256 级灰度值,因此一 个像素占 8 bit, 其值范围从 0 到 255,表示 256 种不同的灰度值。 在这种模式下,颜色表都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示 256 种颜色。 因此一个像素占 8 bit,但这 8 bit 的值不是颜色值,而是颜色表中的索引值,根据索引值在颜色表中找到最终的 RGB 颜色值。 在真彩色图像中,每一个像素由红、绿和蓝三个字节组成, 每个字节为 8 bit,表示 0 到 255 之间的不同的亮度值,这三个字节组合可以产生 1670 万种不同的颜色。 本教材重点介绍 BMP 真 彩色图像的处理技术。 图像文件的一般结构 一般的图像文件结构都包含有文件头和文件体两部分。 文件头的主要内容包括产生或编辑该图像文件的软件的信息以及图像本身的参数。 这些参数必须完整地描述图像数据的所有特征,因此是图像文件中的关键数据。 当然,根据不同的文件,有的参数是可选的,如压缩算法,有的文件无压缩,有的文件可选择多种方法压缩。 文件体主要包括图像数据以及颜色变换查找表或调色板数据。 这部分是文件的主体,对文件容量的大小起决定作用。 如果是真彩色图像,则无颜色变换。 哈尔滨理工大学学士学位论文 11 查找表或调色板数据,对于 256 色的调色板, 每种颜色值用 24 bit 表示,则调色板的数据长度为 256 3(Byte)。 目前还没有非常统一的图像文件格式。 但大多数图像处理软件都与数种图像文件格式相兼容,也即可读取多种不同格式的图像文件。 这样,不同的图像格式间可相互转换。 当然,还有专门的图像格式转换软件,用于各种图像格式间的转换。 BMP 文件格式 bmp 文件可用每 像素 16 或 24 位来编码颜色信息,这个位数称作图 像 的颜色深度,它决定了图 像 所含的最大颜色数。 一幅 1bpp(位每 像素 ,bitperpixel)的 图像 只能有两种颜色。 而一幅 24bpp 的 图像 可以有超过 16 兆 多 种不同的颜色。 bmp 文件的位图数据格式依赖于编码每个 像素 颜色所用的位数。 对于一个256 色的 图像 来说,每个像素占用文件中位图数据部分的一个字节。 像素 的值 不是 rgb 颜色值,而是文件中色表的一个索引。 所以在色表中如果第一个 r/g/b值是 255/0/0,那么 像素 值为 0 表示它是鲜红色, 像素 值按从左到右的顺序存储,通常从最后一行开始。 所以在一个 256 色的文件中,位图数据中第一个字节就是 图像 左下角的 像素 的颜色索引,第二个就是它右边的那个 像素 的颜色索引。 如果位图数据中每行的字节数是奇数,就要在 每行都加一个附加的字节来调整位图数据边界为 16 位的整数倍。 并不是所有的 bmp 文件结构都 像 表中所列的那样,例如 16 和 24bpp,文件就没有色表, 像素 值直接表示 rgb 值,另外文件私有部分的内部存储格式也是可以变化的。 例如,在 16 和 256 色 .bmp 文件中的位图数据采用 rle 算法来压缩,这种算法用颜色加 像素 个数来取代一串颜色相同的序列,而且, windows还支持 os/2 下的 .bmp 文件,尽管它使用了不同的位图信息头和色表格式。 位图文件 (BitmapFile, BMP)格式是 Windows 采用的图像文件存储格式 ,在 Windows 环境下运行的所有图像处理软件都支持这种格式。 Windows 以前的 BMP 位图文件格式与显示设备有关,因此把它称为设备相关位图 (devicedependent bitmap, DDB)文件格式。 Windows 以后的 BMP 位图文件格式与显示设备无关,因此把这种 BMP 位图文件格式称为设备无关位图 (deviceindependent bitmap, DIB)格式,目的是为了让 Windows 能够在任何类型的显示设备上显示 BMP 位图文件。 BMP 位图文件默认的文件扩展名是 BMP 或者bmp。 位图文件可看成由 4 个部分组成:位图文件头 (bitmapfile header)、位图信息头 (bitmapinformation header)、颜色表 (color table)和位图数据。 文件头的信息主要包括与位图文件相关的信息,如文件类型、文件大小等,该部分信息共占 14 个字节。 具体结构如 表 21: 哈尔滨理工大学学士学位论文 12 表 21 位图文件头结构 起始字节 所占节数 具体内容 标识 1 2 文件类型 (windows位图为“ BMP” ) bfType 3 4 文件大小 bfSize 7 4 保留 bfReserved 11 4 第一个位图数据的开始字节位置 bfOffBits 位图信息头的主要内容为与图像相关的信息,如位图的高度与宽度,位图的大小等,该部分信息共占 40 个字节。 具体结构如 表 22: 表 22 位图信息头结构 起始字节 所占节数 具体内容 标识 15 4 位图信息头的长度 (一般为 40) biSize 19 4 位图的宽度 biWidth 23 4 位图的高度 biHeight 27 2 位图的位面数 (=1) biPlanes 29 2 每个像素所占位数 (1, 4, 8, 24等 ) biBitCount 31 4 位图压缩类型 ( 0 或 BI_RGB——未压缩, 1或 BI_RLE8——RLE8压缩 2或 BI_RLE4——RLE4压缩 3 或 BI_BITFIELDS) biCompression 35 4 图像的大小 (以字节为单位,必须是 4的倍数 ) biSizeImage 39 4 位图水平分辩率 (像素 /米 ) biXPelsPerMeter 43 4 位图垂直分辩率 (像素 /米 ) biYPelsPerMeter 47 4 位图实际使用的颜色数 (=0使用 所有颜色 ) biClrUsed 51 4 指定重要的颜色数 (=0 都重要 ) biClrImportant 该部分含有多个表项,每个表项的占 4 个字节。 对于 24 位真彩图像是没有这部分内容。 具体结构如 表 23: 表 23 颜色表中的第 1 个表项的结构 起始字节 所占节数 具体内容 标识 56 1 蓝色的亮度值 rgbBlue 57 1 绿色的亮度值 rgbGreen 58 1 红色的亮度值 rgbRed 59 1 保留 rgbReserved 哈尔滨理工大学学士学位论文 13 该部分的大小取决于压缩方法,它 包含所有的位图数据,这些数据的值取决于biBitCount 的值。 具体结构如图表 24: 表 24 位图数据结构 biBitCount 颜色表项数 说明 1 1 像素 值为 0时,使用第一项颜色,为 1时使用第二项颜色。 4 16 若点阵位图数据中某个字节为 OX1F,则该字节代表 2个 像素。 第一个 像素 用第 2项颜色,第二个 像素 用第 16项。 8 256 点阵位图中每一个字节表示一个 像素。 24 0 无颜色表。 位图数据中三个字节表示一个 像素 的红、绿、蓝值。 biBitCount=1 表示位图最多有两种颜色,黑色和 白色。 图像数据中的每一位 (0 或 1)表示一个像素 (黑色或白色 )。 biBitCount=4 表示位图最多有 16 种颜色。 每个像素用 4 位表示,并用这 4 位作为颜色表的表项来查找该像素的颜色。 例如,如果位图中的第一个字节的十。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。