实验2Matlab图像处理基础.doc
文本预览下载声明
医学图像处理技术实验指导
上海医疗器械高等专科学校
PAGE 4
PAGE 3
姓名 系部 专业 班级 学号 成绩
教师
实验二:Matlab图像处理基础
【实验目的】
了解Matlab平台下的图像编程环境,通过读入、显示、检查内存中的图像,实现直方图均衡化、保存图像、检查新生文件的内容及一些相关的操作。
【实验器材】
硬件:实验用PC机一台
软件:MATLAB
【实验步骤】
一、图像处理的基本操作
双击桌面上的matlab图标,启动matlab软件。
在MATLAB界面右侧“command window”中输入相应的代码,读入并显示一副图像。
clear; %清除MATLAB工作平台的所有变量
close all ; %关闭已打开的图形窗口
I=imread(greens.jpg) ; %读入名为greens的图像文件,并赋给I
Imshow(I); %显示图像
注意:以上代码可以单句执行,也可以多句一起执行,每个分号之前的内容一次执行完成;matlab系统本身安装的一些图像文件存放在:matlab\toolbox\images\imdemos目录下。
显示结果:
检查内存中的图像
使用whos命令来查看图像数据I是如何存储在内存中的,其指令为:whos
Matlab做出的响应如下:
Name Size Bytes Class Attributes
I 300x500x3 450000 uint8
实现直方图的均衡化
为观察显示的图像当前状态下亮度分布情况,选读入文件名为Pout.tif的一幅图像,然后通过使用imhist函数创建描述该图像灰度分布的直方图,首先使用figure命令一个新的图像窗口,避免直方图覆盖数组I的显示结果。其指令为:
clear; %清除MATLAB工作平台的所有变量
close all ; %关闭已打开的图形窗口
I=imread(Pout.tif) ; %读入名为greens的图像文件,并赋给I
Imshow(I); %显示图像
figure,imhist(I);
显示的图像及直方图如下:
由运行结果可以看出,图像对比度较低,直方图没有覆盖整个灰度范围[0,255],仅在较狭窄的范围内,同时图像中值的高低区分不明显,无较好的对比度。可以通过调用histeq函数将灰度值扩展到整个灰度范围中,从而达到提高数组I的对比度。其指令为:
J=histeq(I);%扩展原始图像
figure,imshow(J);%创建一个新窗口并显示直方图扩展后的图像
figure,imhist(J);%创建另一个新窗口,显示扩展后的直方图
结果如下:
保存图像
将新调节后的图像J保存到磁盘中。若希望将修改后的图像保存为JPG格式的图像文件,使用imwrite函数并指定一个文件名,该文件的扩展名为.jpg。指令如下:
imwrite(j,pout.jpg)
该文件被存放在当前的matlab工作路径下。
检查新生成的文件内容
利用imfinfo函数可以观察上述语句写了哪些内容到磁盘上。指令如下:
imfinfo(pout.jpg)
若该句不加分号,将直接显示结果,若加了分号,则在主窗口上显示的ans初双击显示结果
二、图像处理的高级应用
读入并显示一幅灰度图像。
读入并显示灰度图像 pout.tif,且对输入的图像命名为I,具体指令略。
图像中心位置的背景亮度要高于其他部分的亮度。使用imopen函数个一个半径为15的形态打开操作,形态打开操作将会删除那些不完全包括在半径15中的对象,从而实现背景亮度的估计,指令如下:
background=imopen(I,strel(disk,15));
从原始图像中减去背景图像
将背景图像background 从原始图像I中减去,从而创建一个新的背景较为一致的图像,其指令如下:
J=imsubtract(I,background);
figure,imshow(J);
调节图像对比度
从减少背景图像的图像可以看出,修改后的图像很暗,通过使用imadjust函数来调节图像的对比度,并显示调节后的效果。指令如下:
K=imadju
显示全部