




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第六节 医学图像处理一、位图文件的读取、显示以及存储【实验目的】1. 掌握标准C及C+编程语言,熟悉Visual C+编程环境。2. 了解数字图像的表示。3. 了解位图文件的格式。【实验内容】1. 使用Visual C+编写程序,读取标准图像lena.bmp,并将数据存入到一个二维数组中。2. 在用户视图区正确显示该图像。3. 将图像数据行首尾倒置,并保存到一个新的位图文件中。用图像浏览器(如ACDSee、PhotoShop等)验证新写入的位图文件是否正确。【实验原理】偏移量域的名称大小内容图像文件头0000.h标识符(Identifier)2bytes两字节的内容用来识别位图的类型:BM:
2、 Windows 3.1x, 95, NTBA: OS/2 Bitmap ArrayCI: OS/2 Color IconCP: OS/2 Color PointerIC: OS/2 IconPT: OS/2 Pointer0002hFile Size1 dword用字节表示的整个文件的大小0006hReserved1 dword保留,设置为0000AhBitmap Data Offset1 dword从文件开始到位图数据开始之间的数据(bitmap data)偏移量000EhBitmap Header Size1 dword位图信息头(Bitmap Info Head)的长度,用来描述位图的
3、颜色、压缩方法等,下面的长度表示:28h - Windows 3.1x, 95, NT0Ch OS/2 1.xF0h - OS/2 2.x0012hWidth1 dword位图的宽度,以像素为单位0016hHeight1 dword位图的高度,以像素为单位001AhPlanes1 word位图的位面数图像信息头001ChBits Per Pixel1 word每个像素的位数1 - Monochrome bitmap4 16 color bitmap8 256 color bitmap16 16bit(high color) bitmap24 24bit(high color) bitmap32
4、 32bit(high color) bitmap001EhCompression1 dword压缩说明:0 none (也使用BI_RGB表示)1 - RLE 8-bit/pixel(也使用BI_RLE8表示)2 - RLE 4-bit/pixel(也使用BI_RLE4表示)3 - Bitfields(也使用BI_BITFIELDS表示)0022hBitmap Data Size1 dword用字节数表示的位图数据的大小。该数必须是4的倍数0026hHResolution1 dword用像素/米表示的水平分辨率002AhVResolution1 dword用像素/米表示的垂直分辨率002Eh
5、Colors1 dword位图是用的颜色数。如8-位/像素表示为100h或者2560032hImportant Colors1 dword指定重要的颜色数。当该域的值等于颜色数时,表示所有颜色都一样重要调色板数据0036hPaletteN*4 byte调色板规范。对于调色板中的每个表项,这4个字节用下述方法来描述RGB的值:1字节用于蓝色分量1字节用于绿色分量1字节用于红色分量1字节用于填充符(设置为0)图像数据0436hBitmap Datax byte该域的大小取决于压缩方法,他包含所有的位图数据字节,这些数据实际就是彩色调色板的索引号表6-1 位图文件格式位图文件(Bitmap_File
6、,BMP)格式是Windows所采用的图像文件存储格式。一般来说,位图文件由四个部分组成:位图文件头(bitmap_header)、位图信息头(bitmap_information header)、调色板以及位图数据区(字节阵列)。【实验内容】1. 图像数据读取在Windows下打开Visual C+ 6.0,建立工程readbmp,并将该工程保存在自定义的目录下。在视图类的头文件readbmpView.h中定义位图文件头、信息头、调色板数据类型,并声明该类型的变量。文件头:struct bmicolor WORD bftype; DWORD bfsize; DWORD bfreserved;
7、 DWORD bfoffbits; fh;信息头: struct infohead DWORD bisize; DWORD biwidth; DWORD biheight; WORD biplanes; WORD bibitcount; DWORD bicompression; DWORD bisizeimage; DWORD bixpelspermeter; DWORD biypelspermeter; DWORD biclrused; DWORD biclrimportant; ih;调色板: struct bmpcolor BYTE blue; BYTE green; BYTE red;
8、 BYTE reserved; pallete256;在视图类文件readbmpView.cpp中的OnDraw( )函数里定义一个二维数组,用来保存图像像素的灰度值。声明一个文件类对象,CFile fp; 打开图像文件,fp.Open(c:ddd.bmp,0);读取图像中文件头、信息头和调色板信息。fp.Read(&fh,sizeof(fh);fp.Read(&ih,sizeof(ih);for (i=0;iSetPixel(j+50,i+50,RGB(a,a,a);3. 图像存储将图像的行首尾倒置。以写方式来打开一个bmp文件。依次将文件头、信息头、调色板、图像数据写入该文件中。用图像浏览
9、器验证结果。【实验报告】1. 实验目的、实验内容、实验原理、实验内容。2. 实验源代码。3. 实验结果(在屏幕上显示的图像和行颠倒后的图像)。【实验思考】256色彩色图像和256灰度图像的有哪些区别?二、数字图像的几何变换【实验目的】了解图像几何变换的类型和相应方法。掌握图像比例缩放的原理和方法。掌握图像旋转变换的原理和方法。熟悉最近邻域插值、双线性插值的特点和方法。【实验内容】使用Visual C+编写程序,读取标准图像lena.bmp,采用双线性插值算法将其放大2.5倍,并在屏幕上显示。对读出的lena图像进行任意角度的旋转,并将结果在屏幕上显示。【实验原理】1. 图像的比例缩放数字图像的
10、比例缩放是指将给定的图像在x方向和y方向按相同的比例缩放a倍,从而获得一幅新的图像。比例缩放的实质是为新图像中的每个像素分配合适的灰度值,其过程是将新图像看作是一个能够伸缩的橡皮网格,将其缩放a倍后,求其每个坐标点在原始图像中的位置。设(x0, y0)是新图像中的一点,缩放后其在原图像中的位置为(x, y),则通过上述坐标变换获得x和y很有可能都是非整数值,也就是点(x, y)在原图像中没有对应的像素点,因此需要通过灰度级插值的方法获取改点的灰度值。2. 图像的旋转图像的旋转变换是几何学中研究的重要内容之一。旋转是需要围绕一个中心点来进行的,若没有指定旋转变换的中心,一般来说,可以围绕图像的左
11、上角或者图像的中心来进行。数字图像中的二维矩阵是以第一个像素为原点,图像的旋转变换是将图像上的所有像素都旋转同一个角度的变换。本实验是围绕图像左上角进行旋转的操作。经过旋转变换后,图像中每个像素的坐标位置都会发生变化,同时图像的尺寸也会改变。因此,对图像的旋转操作也可以分为两个步骤,即坐标的变换以及灰度级插值。设原始图像的任意点(x0, y0)经旋转角后新坐标为(x, y),则最后,x和y很有可能都是非整数值,因此也需要通过灰度级插值的方法获取改点的灰度值。 若实现围绕图像中心或者任意点的旋转变换,首先要将进行平移操作,将原点位置由原来的首个像素平移到中心点位置,在按照上述的旋转公式进行坐标变
12、换,灰度级差值,最后将旋转后图像的中心再平移回到首个像素的位置,以实现图像的正常显示与存储。由于时间关系,绕任意点的旋转变换由学生自行完成。3. 灰度级插值在对图像进行几何变换时,原始图像的像素坐标(x, y)为整数,而坐标变换后目标图像的位置坐标并非整数,因此该点的灰度值应由其附近的整数坐标点的灰度值来决定,这个操作称为灰度级插值处理。常用的方法有最近邻法和双线性插值法。最近邻法。设(x, y)为通过坐标变换得到的新坐标位置,在原图中寻找与(x, y)临近的四个整数坐标点,并将与其距离最近的整数坐标点的灰度值作为点(x,y)近似灰度值。双线性插值法。用线性内插的方法,根据点(x, y)临近的
13、四个整数坐标点的灰度值,通过两次插值计算出(x, y)的灰度值。如图6-1所示。图6-1 双线性差值法 设A、B、C、D分别为与(x, y)临近的四个整数坐标点,其坐标为别为(x, y)、(x+1, y)、(x+1, y+1)、(x, y+1),灰度值分别为fA、fB、fC、fD。首先根据A点和D点的灰度值求出E点灰度值fE,即同理,F点的灰度值fF为那么,根据E和F两点的灰度值便可求出点(x, y)的灰度值f,即【实验内容】1. 图像的比例缩放读取尺寸为mn位图文件lena.bmp;计算放大后图像的尺寸,M=2.5m,N=2.5n为放大后的图像分配内存空间,即g=(unsigned char
14、 *) malloc(sizeof(unsigned char)*M*N);对放大后图像的每一个点(i, j) ()进行坐标变换,变换后的坐标为别为;利用双线性插值法计算点的灰度值,即放大后图像(i, j)处的灰度值。在屏幕上显示放大后的图像2. 图像旋转读取尺寸为mn位图文件lena.bmp;计算放大后图像的尺寸为放大后的图像分配内存空间,即g=(unsigned char *) malloc(sizeof(unsigned char)*M*N);对旋转后图像中的每一个像素点(i, j) ()进行坐标变换,变换后的坐标为别为;利用最近邻法或双线性差值法计算点的灰度值,即放大后图像(i, j)
15、处的灰度值。在屏幕上显示放大后的图像。【实验报告】实验目的、实验内容、实验原理、实验内容。程序源代码。要求程序可读性好,重要的程序段或变量须加注释。实验结果(缩放后的图像和旋转后的图像)。【实验思考】比较两种插值方法对实验结果的影响?三、 直方图均衡【实验目的】1. 了解图像直方图的概念。2. 了解直方图均衡的目的和用途。3. 掌握直方图均衡的原理和方法。【实验内容】1. 使用Visual C+编写程序,读取图像,并将数据存入到一个二维数组中。2. 对图像进行直方图均衡,并将处理后的图像显示在用户视图区。【实验原理】图像的灰度直方图是一种表示数字图像中各级灰度值及其出现频率关系的函数,通常用二
16、维坐标来描述直方图,其横坐标表示像素的灰度级别,纵坐标表示该灰度出现的频数或概率。灰度直方图从整体上描述了一幅图像的概貌特征,如果一幅图像的直方图覆盖了灰度级很宽的范围,而且灰度级的分布很均匀,那么这幅图像就会具有高的对比度和多变的灰度色调,因此我们可以通过修改直方图的方法来调整图像的灰度分布。直方图均衡主要是用来增强动态范围偏小的图像的反差,从而提高图像的灰度对比度。其主要思想是把一已知灰度概率分布的图像,经过某种变换,变成一幅具有均匀灰度概率分布的图像。由此可以看出,直方图均衡的关键就是寻求一个灰度变换函数,使得变换后的图像具有均匀的灰度概率分布。若用和分别表示原图像和变换后图像的灰度概率
17、密度函数,根据概率论的知识,其中,为单调递增函数如果我们将原图像的灰度概率分布函数作为变换函数,即那么,因此 。 可见,当取变换函数为原图像的灰度概率分布函数作为变换函数时,变换后图像的灰度概率密度是均匀的。【实验内容】1. 利用实验一的程序代码读出待增强的原图像。2. 定义大小为256的一维数组p,用来保存每个灰度级出现的概率密度。3. 统计原图像中每个灰度级的像素数目,并保存在数组p中。4. 计算每个灰度级出现的概率密度,即用数组p中的每个元素除以图像总的像素数目。5. 计算图象各个灰度级的累计分布概率,记为,即6. 计算变换前后灰度级的对应关系,即7. 灰度级变换,对原图像中每一个像素的
18、灰度级用来代替。【实验报告】1. 实验目的、实验内容、实验原理、实验内容。2. 实验源代码。3. 实验结果(在屏幕上显示直方图均衡后的图像)。【实验思考】1. 为什么一般情况下对离散图像进行均衡化并不能产生完全平坦的直方图?2. 直方图均衡适用于对什么样的图像进行增强?实验四 空间域平滑和锐化【实验目的】1. 学会模板操作方法;2. 了解平滑和锐化的意义和用途;3. 熟练掌握均值滤波和中值滤波方法;4. 熟练掌握梯度算子和拉普拉斯算子。【实验内容】1. 使用Visual C+编写程序,读取图像,并将数据存入到一个二维数组中。2. 使用不同尺寸的模板对图像进行均值滤波,并将处理后的图像显示在用户
19、视图区。3. 对图像进行中值滤波,并将处理后的图像显示在用户视图区。4. 使用拉普拉斯算子对图像进行锐化;5. 使用sobel算子对图像进行锐化。【实验原理】平滑滤波一般用于消除图像中的随机噪声,从而起到图像平滑的作用。图像噪声在视觉上通常与它们相邻的像素明显不同,通常为孤立点,表现形式为黑区域上的白点或白区域上的黑点。根据随机噪声的特点,在进行平滑滤波时,通常用噪声点周围临近像素点的灰度值来作为其新的灰度值。均值滤波和中值滤波是最常用的平滑滤波方法,其中均值滤波是线性运算,而中值滤波是非线性运算。均值滤波法是将一个像素点及其邻域中的所有像素点的平均值赋值给输出图像中相应的像素点,从而达到平滑
20、的目的。最简单的均值滤波法采用系数取值都为1的模板,如33、55,以及更大尺度的模板。采用邻域平均法进行平滑滤波能够有效去除噪声,但同时也会使图像中的细节及目标边缘变模糊,而且模板尺寸越大,模糊现象越严重。中值滤波法则在消除噪声的同时还能保持图像中的细节部分。中值滤波是一种非线性滤波,它将邻域内(或模板覆盖下)所有像素点的灰度值从小到大排序,去中间值作为中心像素点的输出值。图像锐化主要用于加强图像中景物的边缘和轮廓,突出图像中的细节部分。由于边缘和轮廓处于灰度突变的地方,因此可以通过微分算子来突出或强调这些突然的变化。图像锐化最常用的是基于仪阶微分的“梯度法”和基于二阶微分的“拉普拉斯算子“。
21、对于一幅图像,它的梯度是一个向量,可以表示为:梯度向量的模值因具有各向同性,因此可以作为锐化滤波器。由于数字图像是离散量,无法采用微分运算,因此用差分运算来代替。同时,由于在求取梯度模值时,需要进行平方和开放运算,运算量大,因此用绝对值来代替。这样,梯度算子可以表示为:除梯度算子外,还可以采用Prewitt算子和Sobel算子,其对应模板如图6-2所示。-101-101-101-1-1-1000111-101-202-101-101-202-101(b) Soble算子(a) Prewitt算子图4.1 (b)Sobel算子图4.1 (a)Prewitt算子图6-2 一阶微分算子拉普拉斯算子是
22、二阶微分算子,即同样,微分操作用差分来代替,则拉普拉斯算子的离散表达式为:拉普拉斯算子对应的模板如图6-3所示。0-10-14-10-10-1-1-1-18-1-1-1-1图6-3 拉普拉斯算子所对应的模板【实验内容】1. 均值滤波利用实验一的程序代码读出待增强的尺寸为MN的原图像。定义33的二维数组p,用来保存模板系数。定义和原图像尺寸相同的二维数组newimage,用来保存均值滤波的结果。解决图像边界问题。将原图像的首尾行和首尾列复制到结果图像中,不予处理。将模板在原图像中依次移动,并将模板中心与待处理的像素(不包括边缘像素点)重合,将模板中的各系数与其对应的像素点相乘,并将相乘结果相加求
23、平均,则均值即为目标图像中对应模板中心位置的像素点灰度值。将目标图像在屏幕上显示。改变模板尺寸,对比不同尺寸的模板对图像的影响。2. 中值滤波利用实验一的程序代码读出待增强的尺寸为MN的原图像。定义一个尺寸为9的一维数组p,用来保存原图像中待处理像素33邻域内的像素灰度值。定义和原图像尺寸相同的二维数组newimage,用来保存中值滤波的结果。解决图像边界问题。将原图像的首尾行和首尾列复制到结果图像中,不予处理。依照从左到右、从上到下的顺序依次处理原图像中的每一个像素,将待处理像素周围33邻域内的像素灰度值保存到一维数组p中。使用冒泡排序法对数组p中的值按升序进行排序。将排序结果p4的值作为待
24、处理像素新的灰度值,并保存在目标图像的对应位置中。将目标图像在屏幕上显示。3. 使用Sobel算子对图像进行锐化具体实验内容参照上述均值滤波的过程。4. 使用拉普拉斯算子对图像进行锐化具体实验内容参照上述均值滤波的过程,在得到的目标图像中,像素的灰度值有正有负,要正确显示目标图像,需要线性调整目标图像的灰度范围,将每个像素的灰度值线性调整到0255这个范围之内。【实验报告】1. 实验目的、实验内容、实验原理、实验内容。2. 实验源代码。3. 实验结果(在屏幕上显示滤波后的图像)。【实验思考】进行均值滤波时,模板尺寸的大小对滤波结果有什么影响?为什么?进行均值滤波时,模板的形状对滤波有什么影响?
25、对比sobel算子和拉普拉斯算子滤波后的结果,说明一阶微分和二阶微分在对图像锐化的区别。五、 频率域滤波增强【实验目的】1. 熟悉快速傅立叶变换算法FFT;2. 了解低通滤波和高通滤波的区别;3. 熟练掌握高斯高通和高斯低通滤波器。【实验内容】1. 使用Visual C+编写程序,读取图像,并将数据存入到一个二维数组中。2. 对图像进行傅立叶变换,并观察频谱。3. 分别用理想低通和高斯低通滤波器对图像进行滤波,反变换后观察滤波结果。4. 分别用理想高通和高斯高通滤波器对图像进行滤波,反变换后观察滤波结果。【实验原理】频域增强方法是将图像从空间域变换到频率域,在频域空间对图像进行滤波处理。空间域
26、滤波可以看作是图像与模板进行卷积运算,即根据卷积定理,我们可以得到其中,、 分别是函数、和的傅立叶变换。称为滤波器传递函数,在对图像进行频率域增强时,首要的任务就是确定,的性质决定了对图像处理的效果。图像从空间域变换到频率域后,其低频分量对应图像中灰度值变化比较缓慢的区域,而高频分量则对应着图像细节或物体边缘等灰度突变的成分。如果滤波器的功能是削弱或抑制高频分量,保留低频分量,这种滤波器称为低通滤波器。频率域中的低通滤波和空间域中的平滑滤波一样,用以消除图像中的随机噪声,消弱边缘效应,起到平滑图像的作用。常用的低通滤波器包括理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器。三种低通滤波器的传
27、递函数如下: 理想低通滤波器传递函数 n阶巴特沃斯低通滤波器传递函数 高斯低通滤波器传递函数其中,是一个非负数,称为截止频率,而是频率域中从点到频域原点的距离,即在频率域对图像进行滤波时,如果滤波器的功能是削弱和抑制低频成分,而保留高频成分,则这种滤波器称为高通滤波器。频域中的高通滤波可以对图像的边缘信息进行增强,起到图像锐化的作用。高通滤波器包括理想高通滤波器、巴特沃斯高通滤波器、高斯高通滤波器等。这三种滤波器的传递函数如下: 理想高通滤波器传递函数 n阶巴特沃斯高通滤波器传递函数 高斯高通滤波器传递函数在频率域对图像进行滤波处理的过程如图6-4所示图6-4 频域滤波系统框图【实验内容】利用
28、实验一的程序代码读出原图像。要求原图像的行数和列数都为2的整数次幂(为了方便调用FFT算法)。如果不足,自行补零。补零后图像的尺寸为MN。定义两个大小为MN的二维数组R和I,用来保存二维傅立叶变换的实部和虚部。为了将频谱中心移中,在进行傅立叶变换之前,对原图像进行预处理,即用乘以。进行二维傅立叶变换,首先对每一行进行傅立叶变换,然后对中间结果的每一列进行傅立叶变换,将结果保存在二维数组R和I中。这样就将二维傅立叶变换分解为多次一维傅立叶变换。在屏幕上显示和观察图像的频谱。分别采用理想低通滤波器和高斯低通滤波器对图像进行低通滤波。此时的频谱中心位于处,此时:。注意实部和虚部要做同样的修改,并将滤
29、波后的结果仍保存在R和I中。对滤波后的结果进行傅立叶反变换(也可对滤波结果取复共轭,然后进行傅立叶正变换)。取反变换的实部,并保存在一个新的二维数组中MN。用乘以反变换的实部,得到滤波后的图像,并在屏幕上显示。重复上述过程,采用理想高通滤波器和高斯高通滤波器进行滤波,观察滤波后的结果。【实验报告】1. 实验目的、实验内容、实验原理、实验内容。2. 实验源代码。3. 实验结果(在屏幕上显示高通和低通滤波后的图像)。【实验思考】1. 为什么在傅立叶变换之前要对图像进行预处理,即用乘以?2. 为什么用理想低通和理想高通滤波器滤波后会存在振铃效应?六、图像的数学形态学变换【实验目的】掌握数学形态学变换
30、的概念、特点和用途。掌握数学形态学最基本的一组形态学运算子,并用这些算子及其组合来进行图像形状和结构的分析及处理(特征抽取河图像滤波)。【实验内容】使用Visual C+编写程序,读取二值图像。采用方形结构元素对二值图像进行腐蚀操作。采用方形结构元素对二值图像进行膨胀操作。采用方形结构元素对二值图像进行开操作。采用方形结构元素对二值图像进行闭操作。选择不同形状的结构元素对二值图像进行形态学变换。【实验原理】数学形态学图像处理的基本思想是利用一个称作结构元素的“探针”收集图像的信息。当探针在图像中不断移动时,便可考察图像各个部分的相互关系,从而了解图像各个部分的结构特征。作为探针的结构元素,可直
31、接携带知识(形状、大小、灰度等)来探测所研究图像的结构特点。二值图像数学形态学二值形态学中的运算对象是集合,通常给出一个图像集合和一个结构元素集合,利用结构元素对图像进行操作,其基本运算有4种:腐蚀、膨胀、开运算和闭运算。基于这些基本运算和组合来进行图像形状和结构的分析及处理。如果A是图像集合,B是结构元素(B本身也是一个图像集合),形态学运算将使用B对A进行操作。结构元素往往比图像小得多,基本运算将遵循这个原则。1. 膨胀和腐蚀膨胀是在二值图像中“加长”或“变粗”的操作。这种特殊的方式和变粗的程度由一个称为结构元素的集合控制。数学上,膨胀定义为集合运算。A被B膨胀,记为,定义为:这个公式是以
32、得到B的相对于它自身原点的映射并且由x对映射进行位移为基础的。腐蚀“收缩”或“细化”二值图像中的对象。像在膨胀中一样,收缩的方式和程度由结构元素控制。腐蚀的数学定义与膨胀相似,A被B腐蚀,记为,定义为:2. 开运算和闭运算在图像处理的实际应用中,更多的以各种组合的形式来使用膨胀和腐蚀,它们可以级连结合使用。膨胀后再腐蚀,或者腐蚀后再膨胀,通常不能恢复成原来的图像(目标),而是产生一种新的形态变换,这就是开运算和闭运算。 A被B的形态学开运算可以记作,这种运算是A被B腐蚀后再用B来膨胀腐蚀的结果。A被B的形态学闭运算可以记作,先膨胀再腐蚀的结果。当处理二值图像时,采用上述的形态学变换组合,主要应
33、用于提取某一区域的边界线、图像边缘轮廓、物体骨架特征和目标识别等众多的实际应用。【实验内容】读取二值图像。采用九个像素的方形结构元素对二值图像进行膨胀操作,观察膨胀后的图像与原图像的区别。结构元素,中心位置为原点。将膨胀操作写成函数的形式,方便多次调用。采用同一个结构元素对二值图像进行腐蚀操作,观察腐蚀后的图像与原图像的区别,以及膨胀与腐蚀的区别。将腐蚀操作也写成函数的形式。对同一幅图像进行开操作,即先腐蚀,再膨胀,比较结果。进行闭操作,即先膨胀再腐蚀,并比较结果。更改结构元素为,中心位置为原点,重复进行膨胀、腐蚀、开和闭操作,比较结果元素的不同对图像操作的影响。【实验报告】1. 实验目的、实
34、验内容、实验原理、实验内容。2. 实验源代码。3. 实验结果(在屏幕上显示形态学操作后的图像)。【实验思考】对图像进行滤波操作,何种形态学变换能够实现?形态学变换进行滤波操作的优点是什么?七、 彩色图像处理【实验目的】1. 了解三种彩色模型的概念、特点和用途。2. 熟悉三种彩色模型之间的关系和相互转换。3. 熟练运用HSI模型对真彩色图像进行处理。【实验内容】1. 使用Visual C+编写程序,读取24位真彩色图像2. 对图像进行反色变换。3. 将彩色图像转换为灰度图像。4. 对彩色图像进行直方图均衡。【实验原理】 彩色模型(也称彩色空间或彩色系统)的用途是在某些标准下用通常可接受的方式简化
35、彩色规范。目前常用的彩色模型可分为两类,一类是面向硬件设备的,如RGB模型、CMY(青、深红、黄)模型和CMYK(青、深红、黄、黑)模型,前者用于彩色监视器和彩色视频摄像机,后两者主要用于彩色打印机;另一类主要面向彩色处理应用,如HSI(色调、饱和度和亮度)模型,可以将图像分成彩色和灰度信息,更加适合于许多灰度处理技术。1. RGB彩色模型RGB彩色模型基于笛卡尔坐标,构成了如图6-4所示的彩色立方体子空间。R、G、B位于相应的坐标轴的顶点,黑色位于原点,白色位于离原点最远的顶点,不同的颜色处在立方体上或其内部,并可用从原点分布的向量来定义。在RGB彩色模型中,所表示的图像由三个图像分量组成,
36、每一个图像分量都是一幅8比特图像,每一个彩色像素称为24比特深度。图6-4 彩色立方体示意图2. CMY和CMYK模型CMY和CMYK模型组要适用于彩色打印和复印设备。青、深红和黄色是光的二次色,也是颜料的颜色。RGB模型和CMY模型的转换为:其中,假设R、G、B的值都归一化为0,1范围。等量的颜料原色(青、深红、黄)可以产生黑色。实际上,组合出来的黑色不纯。因此为了产生真正的黑色加入了第四种颜色黑色,因此产生了CMYK彩色模型。3. HSI彩色模型HSI模型可在彩色图像中从携带的彩色信息(色调和饱和度)里消去强度分量的影响,对于开发基于彩色描述的图像处理方法是一个理想的工具。色调是描述纯色的
37、属性(如纯黄、橘黄或红色等),饱和度给出一种纯色被白光稀释的程度的度量。亮度体现了无色的强度概念,是单色图像最有用的描述子。HSI模型定义在如图6-5所示的圆柱形坐标的双圆锥子集上。下面圆锥的顶点为黑色,亮度为0,上面圆锥的顶点为白色,亮度为1,连接黑和白的轴线称为亮度轴。对于圆锥体上的任意一个色点p,p点的亮度由p所在的垂直于亮度轴的的平面与亮度轴的交点确定。图6-5 基于圆形彩色平面的HIS彩色模型垂直于亮度轴的平面是一个圆形色环,描述了HSI的色调和饱和度。色调由绕亮度轴I的旋转角给定。红色对应角度0,对于任意一个色点p来说,其色调值对应于指向该点的矢量与0的夹角,其饱和度的值为指向该点
38、的矢量的长度。4. RGB彩色模型与HSI彩色模型之间的转换对于RGB模型中的在0,1范围内的R、G、B值,对应的HSI模型中的各分量可由下面的公式计算得出:对于HSI模型中的在0,1范围内的H、S、I值,对应的RGB模型各分量可由下面的公式计算得出:当时: 当时: 当时: 5. 反色变换反色是指与某种色调互补的另一种色调,反色变换就是得到原图像的负片效果。在真彩色图像中,R、G、B三个分量都用8位二进制表示,则反色图像g(x,y)与输入图像f(x,y)的R、G、B分量之间的关系可表示为:6. 彩色图像灰度化在一些实际应用中,为了加快图像处理的速度,常需要利用将采集设备得到的彩色图像转换为灰度
39、图像后再进行处理。将彩色图像转换为灰度图像的实质,就是通过对图像R、G、B分量的变换,使得每个像素点的这三个分量值相等。常用的方法有最大值法、平均值法和加权平均值法。最大值法:平均值法:加权均值法:其中,在加权平均值法中,权值的选取较为关键,权值不同,彩色图像的灰度化结果也不同。相关研究表明,当,以及时,得到的灰度化结果较为合理,即7. 彩色图像的直方图增强直方图均衡技术可以自动地确定一种变换,这种变换试图产生具有均匀的灰度值的直方图。在灰度图像中,参与变换的只有灰度值这个量。而在真彩色图像中,每一个像素由R、G、B三个分量来表示。对彩色图像进行直方图均衡,可以分别对每个通道的图像进行直方图均
40、衡,然后再三幅将处理后的图像叠加。另一种方法是将RGB模型转换为HIS模型,由于色调和饱和度表示的是颜色信息,而亮度与颜色无关,因此只需对亮度分量进行直方图均衡,而保持色调和饱和度不变,是较为合理的彩色图像直方图均衡方法。【实验内容】1. 真彩色图像读取定义三个和图像尺寸相同的MN的二维数组R、G、B,分别用来保存彩色图像中每个像素的RGB分量。读取原图像。在真彩色BMP图像中,没有调色板,像素按从上到下从左到右顺序存放,每个像素用三个字节表示,分别对应红绿蓝三个分量,将这三个分量分别保存到上述定义的三个数组中(参照实验一)。2. 真彩色图像反色变换另外定义三个尺寸为MN的二维数组RR、GG、
41、BB,用来保存反色后的图像。进行反色变换。For (i=0; iM; i+) For (j=0; jN; j+) RRij=255-Rij; GGij=255-Gij; BBij=255-Bij;显示反色后的图像。For (i=0; iM; i+) For (j=0; jSetPixel(j,i,RGB(RRij, GGij, BBij);3. 彩色图像灰度化定义一个尺寸为MN的二维数组gray,保存灰度化后的图像。进行彩色图像灰度化,For (i=0; iM; i+) For (j=0; ja。a的典型值在0.25到0.5之间,b的典型值在1.5到2.0之间。是选择的高通滤波函数,在本实验中
42、,选择巴特沃思高通滤波器。【实验内容】1. 编写程序,读取图6-6的胸部X射线图像,并能够正常显示原图。图6-6 胸部X射线图像2. 将该图像进行FFT变换,转换到频率域,采用巴特沃思高通滤波器,n=2,D0采用垂直方向值的5%。只要滤波器的半径不太小,频率接近变换后的原点,高通滤波就不会对参数过度敏感。将经过高通滤波的图像转换回空间域,结果只是显示出微弱的主要图像边缘。3. 将高通滤波函数改为高频加强函数,其中a=0.5,b=2.0。观察滤波后的图像,虽然图像仍然很暗,但是灰度色调由于低频分量的保持没有丢失。4. 采用直方图均衡,将图像的灰度范围扩大,便于观察图像的细节。得到的图像应该为图6
43、-7所示。图6-7 胸部X射线图像增强效果图【实验报告内容】1. 实验目的、实验内容、实验原理、实验内容。2. 实验源代码。3. 实验结果(在屏幕上显示高通、高频增强和直方图均衡后的图像)。【实验思考】高频增强滤波器的特点,适用的条件?a,b系数的选择会对图像造成什么样的影响?二、 细胞图像分割【实验目的】图像分割是将图像的目标和背景分开。了解各种图像分割的方法并实现一种自动分割得算法。【实验内容】1. 使用Visual C+编写程序,读取细胞图像。2. 对图像进行预处理,主要是去除噪声,避免噪声对图像分割造成干扰。3. 选用Otsu算法进行分割,将图像转换为二值图像。4. 采用形态学的方法去
44、除二值图像中的噪声。5. 对图像中目标的孔洞进行填充。【实验原理】图像分割可以分为全局阈值,局部阈值和动态阈值几类方法,其中最重要的是全局阈值,它是后两类方法的基础。全局阈值又有极小点阈值法,迭代阈值法,最小均方误差法,最大类间方差法等等。每种方法在相关书籍上都有详细的介绍。其中最简单的是极小点阈值法,它是根据图像的灰度直方图中极小点的位置来作为阈值进行分割的。但是这种方法不能够实现自动确定阈值。使用的最多的是最大类间方差法,即Otsu算法。它是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。它的基本原理为以最佳阈值将图像的灰度直方图分割成两部分,使两部分的方差取
45、最大值,即分离性最大。该算法适用于图像二值化(用单阈值分割图像),其基本思路是:选取最佳阈值应当使得用该阈值分割得到的两类间具有最好的分离性;类间分离性最好的判据是统计意义上的类间特性差最大或类内特性差最小。设X是一幅具有L灰度级的图像,其中第i级像素为Ni个,图像总的像素点个数为,第i级像素出现的概率为。选定一个阈值k将所有的像素分为C0、C1(目标和背景)两类。其中C0类的像素灰度级为0k,类C1的像素灰度级为(k+1)L-1。图像的总平均灰度级为,C0类的平均灰度级为,C1类的平均灰度级为。两部分图像所占面积的比例分别为:,。令,类间方差定义为令k从1L-2变化,计算不同k值下的类间方差
46、,使最大的那个k值就是所求的最优阈值。因为方差是像素灰度分布均匀性的一种量度,方差越大,说明均匀性越差,图像中的目标和背景的差别越大。当部分目标错分为背景或者是部分背景错分为目标,都会使两部分的差别变小,因此类间方差最大的分割意味着错分概率最小,即分割效果最好。【实验内容】1. 读取血液细胞图像,并能够正常显示。2. 采用中值滤波对图像进行去噪。3. 根据实验原理,编写Otsu算法,对图像进行分割,得到二值图像。4. 观察所得到的二值图像,进行后处理。去除掉背景中的噪声。采用形态学的方法。因为细胞的形状和大小比较接近,选择比细胞形状小很多的结构元素,进行开操作,就能够滤除掉背景中的噪声。根据图
47、像显示的结果,可以逐渐调整结构元素的大小,以实现准确的去掉噪声。5. 由于目标细胞的灰度并不均匀,因此分割后在目标细胞内部可能存在孔洞,我们再用形态学闭操作填补上孔洞,使细胞能够以完整的目标存在。【实验报告内容】1. 实验目的、实验内容、实验原理、实验内容。2. 实验源代码。3. 实验结果(在屏幕上显示图像分割后的二值图像的结果)。【实验思考】图像分割过程的预处理和后处理也非常重要。由于图像的种类特点众多,很难找到通用的分割方法,因此要学会从处理图像的特点进行出发,进行准确有效的分割,也可以结合几种不同的分割方法,以达到较好的处理结果。三、 细胞计数【实验目的】本实验是以实验二图像分割为基础,
48、在分割识别出血液中的细胞的基础上,自动检测出细胞的个数及各个细胞的面积。【实验内容】1. 读取实验二分割结果的二值图像。2. 对图像进行形态学操作,去除掉微小的非细胞目标,填补细胞内部的孔洞,保证细胞目标的连通性,3. 对分割出来的每个细胞进行区域标记。4. 计算每个标记区域的面积,并统计标记区域的个数。【实验原理】图像分割的结果是一幅二值图像,所有的目标区域都被赋予同一种灰度值。如果图像中有多个目标区域,并且希望分析各个目标的大小、形状等特征时,就需要对目标区域加以区分。区域标记是指对图像中同一连通区域的所有像素赋予相同的标记,不同的连通区域赋予不同的标记。常用的区域标记方法有递归标记法。递
49、归标记算法如下:1. 从左到右,从上到下逐行逐列扫描图像,寻找没有标记的目标点P,给该点分配一个新的标记。2. 递归分配同一标记给P点的淋浴目标像素。3. 直到相互连接的像素全部标记完毕,一个连通区域就标上了同样的记号。4. 重复步骤(1)(2)(3),寻找未标记的目标点并递归分配同一标记给其邻域目标点,则图像标记完毕。【实验内容】1. 形态学处理。经阈值分割的图像中还包含有一些较大的噪声。采用形态学方法去除这些较大的噪声。具体做法是用33的结构元素对其进行两次腐蚀操作。2. 填充孔洞。逐行扫描图像,当遇到像素值为255的像素时,判断其上下左右一定范围W内的像素值,若有像素值为0的峡谷尿素,则
50、被标记,如果上下左右同时被标记,则置该像素值为0。扫描完整副图像,则处理结束。范围W的大小可视孔洞大小实验设定,本实验可选择为20。3. 若图像中有部分细胞出现粘连,可以通过较为复杂的算法将粘连细胞分割开来。本实验采取如下简单方法进行细胞计数和面积计算。采用递归算法进行标记处理,初步计算出细胞的个数。计算不同标记区域的像素数,并用区域的像素数代表其面积。若某科标记区域的像素数大于某一值(如),则认为该标记区域为两个粘连在一起的细胞,原细胞数量增加;若某个标记区域像素数小于,则视为噪声,原细胞数量减。【实验报告内容】1. 实验目的、实验内容、实验原理、实验内容。2. 实验源代码。3. 实验结果(
51、在屏幕上显示统计后的细胞面积和个数)。一、 心脏超声图像的去噪根据学过的去噪方法,对心脏超声图像进行处理。可以采用不同模板的空间域滤波,频率域滤波,形态学滤波的算法,或者是不同算法的组合,以达到较好的去噪效果。 二、 基因芯片图像的自动识别基因芯片是生物信息学进行反应的一种技术,因为它数据量大的特点,应用比较广泛。由于反应程度不同,有些呈阳性,有些呈阴性。根据图像灰度的不同,将阳性样点识别出来。关键问题在于样点的自动定位与自动分割。附录资料:不需要的可以自行删除Abstract: Based on the comprehensive analysis on the plastic parts
52、structure service requirement, mounding quality and mould menu factoring cost. A corresponding injection mould of internal side core pulling was designed. By adopting the multi-direction and multi-combination core-pulling. A corresponding injection mould of internal side core pulling was designed, t
53、he working process of the mould was introducedC语言详解 - 枚举类型注:以下全部代码的执行环境为VC+ 6.0在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。1. 定义一种新的数据类型 - 枚举型 以下代码定义了这种新的数据类
54、型 - 枚举型enum DAY MON=1, TUE, WED, THU, FRI, SAT, SUN;(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。(2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。(5) 枚举型是预处理指令#define的替代。(6) 类型定义以分号;结束。2. 使用枚举类型对变量进行声明新的数据类型定义完成后,它就可以使用了。我们已经见过最基本的数据类型
55、,如:整型int, 单精度浮点型float, 双精度浮点型double, 字符型char, 短整型short等等。用这些基本数据类型声明变量通常是这样:char a; /变量a的类型均为字符型charchar letter;int x, y, z; /变量x,y和z的类型均为整型intint number;double m, n;double result; /变量result的类型为双精度浮点型double既然枚举也是一种数据类型,那么它和基本数据类型一样也可以对变量进行声明。方法一:枚举类型的定义和变量的声明分开enum DAY MON=1, TUE, WED, THU, FRI, SAT
56、, SUN;enum DAY yesterday;enum DAY today;enum DAY tomorrow; /变量tomorrow的类型为枚举型enum DAYenum DAY good_day, bad_day; /变量good_day和bad_day的类型均为枚举型enum DAY方法二:类型定义与变量声明同时进行:enum /跟第一个定义不同的是,此处的标号DAY省略,这是允许的。 saturday, sunday = 0, monday, tuesday, wednesday, thursday, friday workday; /变量workday的类型为枚举型enum D
57、AYenum week Mon=1, Tue, Wed, Thu, Fri Sat, Sun days; /变量days的类型为枚举型enum weekenum BOOLEAN false, true end_flag, match_flag; /定义枚举类型并声明了两个枚举型变量方法三:用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明:typedef enum workday saturday, sunday = 0, monday, tuesday, wednesday, thursday, friday workday; /此处的workday为枚举型enum wor
58、kday的别名workday today, tomorrow; /变量today和tomorrow的类型为枚举型workday,也即enum workdayenum workday中的workday可以省略:typedef enum saturday, sunday = 0, monday, tuesday, wednesday, thursday, friday workday; /此处的workday为枚举型enum workday的别名workday today, tomorrow; /变量today和tomorrow的类型为枚举型workday,也即enum workday也可以用这种
59、方式:typedef enum workday saturday, sunday = 0, monday, tuesday, wednesday, thursday, friday;workday today, tomorrow; /变量today和tomorrow的类型为枚举型workday,也即enum workday注意:同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名常量。错误示例如下所示:错误声明一:存在同名的枚举类型typedef enum wednesday, thursday, friday workday;typedef enum WEEK satur
60、day, sunday = 0, monday, workday; 错误声明二:存在同名的枚举成员typedef enum wednesday, thursday, friday workday_1;typedef enum WEEK wednesday, sunday = 0, monday, workday_2;3. 使用枚举类型的变量3.1 对枚举型的变量赋值。实例将枚举类型的赋值与基本数据类型的赋值进行了对比:方法一:先声明变量,再对变量赋值#include/* 定义枚举类型 */enum DAY MON=1, TUE, WED, THU, FRI, SAT, SUN ;void ma
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学三年级英语六级考试备考资料:写作
- 非政府组织竞争策略-深度研究
- 银行资产负债管理-深度研究
- 2025年初中人教版九年级物理第二十章 第四节 电动机实验教学说课稿
- 餐饮业连锁扩张战略-深度研究
- 急诊医学基础研究-深度研究
- 2025年度珠宝首饰销售提成激励协议
- 二零二五年度环保技术专利许可合作协议
- 二零二五年度水利工程合同价款组成及验收标准
- 二零二五年度三方合同协议书:智慧农业物联网技术合作开发协议
- 竖弯钩的书写课件
- 幼儿园小班植树节课件:《栽树》
- 初中英语《Unit5-Do-you-remember-what-you-were-doing》教学课件设计
- 幼儿园大班数学口算练习题可打印
- 关于赴XXX医院参观学习联系函
- 小学班会课件-端午节主题班会(共19张PPT)通用版 PPT课件
- 体医融合与健康中国课件
- 细菌性痢疾流行病学个案调查表
- 员工年终述职报告工作总结PPT模板
- 空难调查报告澳洲航空32班机
- 青岛万象城各层平面图规划设计
评论
0/150
提交评论