医学图像处理实验报告 下载本文

内容发布更新时间 : 2024/11/14 14:29:49星期一 下面是文章的全部内容请认真阅读。

实验2 亮度变换与空间滤波 2.1 实验原理 2.1.1 亮度变换函数

函数imadjust是对灰度图像进行亮度变换的差不多IPT工具。语法为: g = imadjust (f, [low_in high_in], [low_out high_out], gamma) 次函数将图像f中的亮度值映射到g中的新值,立即low_in至high_in之间的值映射到low_out至high_out之间的值。参数gamma指定了曲线的形状,该曲线用来映射f的亮度值,以便生成图像g。

2.1.2 直方图处理与函数绘图

(1)函数imhist是处理图像直方图的核心函数,其语法为: h = imhist (f, b)

其中,f为输入图像,h为其直方图h(rk),b是用于形成直方图的“收集箱“的个数(即灰度级的个数)。b默认为256。

(2)绘制直方图还有另外三个函数bar、stem和plot分不以条形图、杆状图和线图的形式体现直方图,其语法为:

bar (horz, v, width)

stem (horz, v, ‘color_linestyle_marker’, ’fill’) plot (horz, v, ‘color_linestyle_marker’)

其中,horz是一个与v有着相同维数的向量,它包含水平标度值的增量;width是一个在0和1之间的数,为0则竖条是简单垂直线,为1则竖条明显;color_linestyle_marker来自表格 错误!文档中没有指定样式的文字。-8的三个值,默认颜色为black,默认线条为solid(实线),默认标记点形状为circle。

表格 错误!文档中没有指定样式的文字。-8 函数stem和函数polt属性。none属性只适用于函数plot,且必须单独指定。

符号 k w r g b 颜色 黑 白 红 绿 蓝 符号 - -- : -. none 线型 实线 虚线 点线 点划线 无线 符号 + ○ * . x 标记 加号 圆形 星号 点 叉形 c y m 青 黄 品红 s d none 方形 菱形 无标记 (3)直方图均衡化由工具箱中的函数histeq实现,该函数语法为: g = histeq (f, nlev)

其中,f为输入图像;nlev是为输出图像指定的灰度级数,其默认值为64,但一样设定为256。

(4)直方图匹配(也称直方图规定化)使用histeq实现,语法为: g = histeq (f, hspec)

其中,f为输入图像,hspec为指定的直方图(一个由指定值构成的行向量),g为输出图像,其直方图类似指定的直方图hspec。

(5)线性空间滤波是利用工具箱中的函数imfilter来实现,通用语法为:

g = imfilter (f, w, filtering_mode, boundary_options, size_options) 其中,f是输入图像,w为滤波掩模,g为掩模结果,其他参数参见下表。

表格 错误!文档中没有指定样式的文字。-9 函数imfilter的选项

选项 滤波类型 ‘corr’ ‘conv’ 边界类型 P 描述 滤波通过使用有关来完成。该值默认。 输入图像的边界通过用值P(无引号)来填充扩展。默认为0。 ‘replicate’ 图像大小通过复制外边界的值来扩展。 ‘symmetric’ 图像大小通过镜像反射外边界来扩展。 ‘circular’ 大小选项 ‘full’ ‘same’ 图像大小通过将图像看成一个二维周期函数的一个周期来扩展。 输出图像大小与被扩展图像大小相同。 输出图像大小与输入图像大小相同。这可将通过滤波掩模的中心点的偏移限制到原始图像中包含的点来实现。该值默认。 (6)线性空间滤波器可通过函数fspecial来实现,语法为: w = fspecial (‘type’, parameters)

其中,‘type’表示滤波器类型,parameters进一步定义了指定的滤波器,详见下表。

表格 错误!文档中没有指定样式的文字。-10 函数fspecial支持的空间滤波器

类型 ‘average’ ‘disk’ ‘gaussian’ 函数和参数 fspecial(‘average’,[r c])即大小为r*c的一个矩阵平均滤波器。默认为3*3。若由一个数来代替[r c],则表示方形滤波器。 fspecial(‘disk’,r)一个圆形平均滤波器(包含在2r+1大小的正方形内),半径为r。默认半径为5。 fspecial(‘laplacian’,[r c],sig)一个大小为r*c的高斯低通滤波器,标准偏差为sig(正)。默认值为3*3和0.5。若由一个数来代替[r c],则表示方形滤波器。 ‘laplacian’ fspecial(‘laplacian’,alpha) 一个大小为3*3的拉普拉斯滤波器,其形状由alpha决定,alpha是范畴内[0,1]的一个数.alpha默认为0.5。 ‘log’ fspecial(‘log’,[r c],sig) 一个大小为r*c的高斯-拉普拉斯(LoG)滤波器,标准偏差为sig(正)。默认值为5*5和0.5。若用一个数代替[r c],则表示一个方形滤波器。 fspecial(‘motion’,len,theta)围绕一副有着len像素的图像线性运动时(类似照相机与景物的关系),输出一个滤波器。运动方向为theta,单位为度,即从水平方向逆时针转动的角度,默认值为9和0,表示沿水平方向9个像素的运动。 fspecial(‘prewitt’)输出一个大小为3*3的prewitt掩模wv,它近似’于垂直梯度。水平梯度掩模能够通过置换结果wh=wv获得。 fspecial(‘sobel’)输出一个大小为3*3的掩模wv,它近似于垂直梯度。’水平梯度掩模能够通过置换结果sh=sv获得。 fspecial(‘unsharp’,alpha)输出一个大小为3*3的非锐化滤波器。参数alpha操纵形状;它必须是一个大于等于1.0的数,默认值为0.2。 ‘motion’ ‘prewitt’ ‘sobel’ ‘unsharp’ (6)非线性空间滤波,要紧介绍二维中值滤波函数: g = medfilt2 (f, [m n], padopt)

其中,数组[m n]定义了一个大小为m*n的邻域,中值就在该邻域上运算,而padopt指定了三个可能的边界填充选项之一:‘zero’(默认值);‘symmetric’,此地f按照镜像反射方式对称地沿着边界扩展;‘indexed’,若f是double类图像,则以1来填充图像,否则以0来填充图像,该函数默认形式为:

g = medfilt2 (f)

它使用一个大小为3*3的邻域来运算中值,并用0来填充图像的边界。 2.2 实验内容

2.2.1 如图是数字乳房X射线原始图像、负片图像、亮度范畴为[0.5 0.75]的图像和令gamma=2的图像。写出实验步骤来显示这4副图像。(提示:使用imadjust函数)

>> f= imread('Fig3.04(a).jpg'); >> subplot(2,2,1),imshow(f) >> g1=imadjust(f, [0 1],[1 0]); >> subplot(2,2,2),imshow(g1) >> g2=imadjust(f,[0.5 0.75], [0 1]); >> subplot(2,2,3),imshow(g2) >> g3=imadjust(f, [ ], [ ], 2); >> subplot(2,2,4),imshow(g3)

2.2.2 读取图像'Fig1.06(b).jpg',并绘制4种类型直方图。成效如下图所示。

>> f=imread('Fig1.06(b).jpg'); >> imhist(f);

>> h1=h(1:10:256); >> horze=1:10:256; >> bar(horze,h1)

>> axis([0 255 0 15000]) >> set(gca, 'xtick', 0:50:255) >> set(gca, 'ytick', 0:2000:15000)

>> stem(horze, h1, 'fill') >> axis([0 255 0 15000])

>> set(gca, 'xtick',[0:50:255]) >> set(gca, 'ytick',[0:2000:15000])

>> plot(h)

>> axis([0 255 0 15000]) >> set(gca, 'xtick',[0:50:255]) >> set(gca, 'ytick',[0:2000:15000])

2.2.3 如图(Fig3.15(a)1top.jpg)是电子显微镜下放大700倍的花粉图像,为得到如图所示结果,请写出实验步骤。

>> f=imread('Fig3.15(a)1top.jpg'); >> imshow(f) >> figure,imhist(f) >> ylim('auto') >> g=histeq(f,256); >> figure,imshow(g) >> figure,imhist(g) >> ylim('auto')

>> hnorm=imhist(f)./numel(f);