医学图像处理二.docx
- 文档编号:3843678
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:12
- 大小:3.62MB
医学图像处理二.docx
《医学图像处理二.docx》由会员分享,可在线阅读,更多相关《医学图像处理二.docx(12页珍藏版)》请在冰点文库上搜索。
医学图像处理二
评分
大理大学实验报告
课程名称医学图像处理
实验名称图像运算
专业班级13级生物医学工程1班
姓名杨飞范小欢
学号20131661412013166143
实验日期2015年12月3日
实验地点S3-204
2015—2016学年度第2学期
一、实验目的
MATLAB的图像处理工具箱提供了图像的运算函数。
本实验将具体介绍Matlab中用于图像点运算、代数运算、几何和领域操作运算。
二、实验环境
1、硬件配置:
处理器:
Intel(R)celeron(R)CPUN2940@2.60GHz2.60GHz
安装内存(RAM):
4.00GB
系统类型:
64位操作系统
2、软件环境:
MATLABR2012b
3、实验内容
1.图像点运算
读入图像’rice.tif’,通过图像点运算改变对比度。
2.图像的代数运算
a)图像加法运算
b)图像减法运算
c)图像乘法运算
d)图像除法运算
3.图像的几何运算
a)改变图像的大小
读入图像’ic.tif’,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。
b)旋转一幅图像
将上述图像顺时针和逆时针旋转任意角度,观察显示效果。
c)图像剪切
通过交互式操作,从一幅图像中剪切一个矩形区域。
4.图像的邻域操作
读入图像’tire.tif’,分别使用nlfilter和blkproc对图像进行滑动邻域操作和分离邻域操作。
四、实验结果与分析
题1代码及其实验结果与分析
rice=imread('rice.png');%读取图像rice
subplot(131),imshow(rice);%生成一行三列序号为1的子图显示图像rice
I=double(rice);%转换为双精度类型
J=I*0.43+60;%进行点运算,改变对比度
rice2=uint8(J);%转换为uint8
subplot(132),imshow(rice2)%生成一行三列序号为2的子图显示图像rice2
J=I*1.5-60;%进行点运算,改变对比度
rice3=uint8(J);%转换为uint8
subplot(133),imshow(rice2)%生成一行三列序号为3的子图显示图像rice3
实验结果:
图1
分析:
通过点运算改变图像的灰度值,从而改变了对比度。
题2a)代码及其实验结果与分析
I=imread('rice.png');%读取图像rice
imshow(I);%显示图像rice
J=imread('cameraman.tif');%读取图像cameraman
figure,imshow(J);%显示图像cameraman
K=imadd(I,J);%将两图像相加
figure,imshow(K);%显示相加图像
K2=imadd(I,J,'uint16');%将两图像相加转换为uint16
figure,imshow(K2,[]);%显示相加图像
RGB=imread('flowers.png');%读取图像flowers
RGB2=imadd(RGB,50);%将图像flowers与常数50相加
imshow(RGB);%显示图像flowers
figure,imshow(RGB2);%显示加50的图像flowers
RGB3=imadd(RGB,100);%将图像flowers与常数100相加
figure,imshow(RGB3)%显示加100的图像flowers
实验结果:
图2.11图2.12图2.13
图2.14图2.15图2.16
分析:
通过imadd函数把大小相等图像加在一起,如图2.13是把图2.11和2.12加起来的;图2.15是图2.14的灰度值都加上50后得到的;图2.16是图2.14的灰度值都加上100后得到的。
题2b)代码及其实验结果与分析
I=imread('rice.png');%读取图像rice
imshow(I);%显示图像rice
bankground=imopen(I,strel('disk',15));%估计背景图像
%imopen,开运算,对图像先腐蚀再进行膨胀。
figure,imshow(bankground);%显示估计的背景图像
I2=imsubtract(bankground);%从原始图像中减去背景图像
figure,imshow(I2);%显示减去背景图像后的图像
实验结果:
图2.21图2.21
分析:
通过bankground函数把图像背景估计出来,然后再用imsubtract(bankground)减去背景,再显示出如图2.21所示的背景。
题2c)代码及其实验结果与分析
I=imread('moon.tif');%读取图像moon
J=immultiply(I,1.2);%缩放因数1.2>大于1,增强图像的亮度。
K=immultiply(I,0.5);%缩放因数0.5小于1,使图像变暗。
imshow(I);%显示图像moon
figure,imshow(J);%显示变亮的图像
figure,imshow(K);%显示变暗的图像
实验结果:
图2.31原图图2.32图2.33
分析:
用immultiply(I,m)函数进行图片缩放,缩放因素m>1时,增强图像的亮度;m<1时,使图像变暗。
图2.32是增强亮度,图2.33是图像变暗。
题2d)代码及其实验结果与分析
I=imread('moon.tif');%读取图像moon,除法运算可用于校正成像设备的非线性影响
J=double(I)*0.43+80;%将图像moon转换成双精度进行点运算
J=uint8(J);%转换成uint8
K=imdivide(I,J);%原图moon与点运算后的图像进行除法运算
imshow(I);%显示图像moon
figure,imshow(J);%显示点运算后的图像
figure,imshow(K);%显示除法运算后的图像
实验结果:
图2.41原图图2.42图2.43
分析:
图2.42是2.41通过点运算后灰度值增大,图片变亮;图2.43是2.41通过除法运算后灰度值变低,图像变暗。
题3a)代码及其实验结果与分析
I=imread('ic.jpg');%读取图像ic
J=imresize(I,1.25);%返回图像J,其长宽是图像I的长宽的1.25倍,及放大图像
K=imresize(I,0.8);%返回图像K,其长宽是图像I的长宽的0.8倍,及缩小图像
imshow(I);%显示图像ic
figure,imshow(J);%显示放大图像
figure,imshow(K);%显示缩小图像
Y=imresize(I,[100,150]);%返回图像Y,高度为100,宽度为150
figure,imshow(Y);%显示指定高宽的图像ic
实验结果:
图3.11原图图3.12图3.13图3.14
分析:
imresize(I,m),m>1时放大图片,m<1时缩小图片;imresize(I,[M,N]),指定高度为M,宽度为N。
题3b)代码及其实验结果与分析
I=imread('ic.jpg');%读取图像ic
J=imrotate(I,30,'bilinear');%将图像ic绕图像的中心点旋转30度
%bilinear:
双线性插值
J1=imrotate(I,30,'bilinear','crop');%crop:
通过对旋转后的图像进行裁剪
imshow(I);%显示图像ic
figure,imshow(J);%显示逆时针旋转30度,进行双线性插值后的图像
figure,imshow(J1);%显示逆时针旋转30度,进行双线性插值并裁剪后的图像
J2=imrotate(I,-15,'bilinear');%将图像顺时针旋转15度,进行双线性插值
figure,imshow(J2);%显示顺时针旋转15度,进行双线性插值后的图像
实验结果:
图3.21原图图2.22图3.23图3.24
分析:
imrotate(I,P,'bilinear'),将图像绕中心点旋转P度(正数表示逆时针旋转,负数表示顺时针旋转);bilinear:
双线性插值,在两个方向分别进行一次线性插值。
题3c)代码及其实验结果与分析
I=imread('ic.jpg');%读取图像ic
imshow(I);%显示原图
I1=imcrop;%imcrop函数可以从一幅图像中抽取一个矩形的部分
figure,imshow(I1);%显示I1裁剪图像
I2=imcrop(I,[3060120160]);%剪切图像ic中[3060120160]d的部分
figure,imshow(I2);%显示I2裁剪的图像
实验结果:
图3.31原图图3.32图3.33
分析:
图3.32为imcrop函数从图像中抽取一个矩形的部分,此图是裁剪的空白的一部分。
题4代码及其实验结果与分析
I=imread('tire.tif');%读取图像tire
f=inline('max(x(:
))');%定义一个取最大值的函数f,
I2=nlfilter(I,[33],f);%对图像I的每一个3*3滑块应用函数f
imshow(I);%显示原图
figure,imshow(I2);%显示进行滑动邻域操作的图像
I=imread('tire.tif');%读取图像tire
f=inline('uint8(round(mean2(x)*ones(size(x))))');
I2=blkproc(I,[88],f);%对图像I的每一个8*8滑块应用函数f
imshow(I);%显示图像I
figure,imshow(I2);%显示图像I2
实验结果:
图4.1原图图4.2图4.3
分析:
图4.2是图4.1进行滑动邻域操作后的图像,图4.3是图4.1进行分离块操作 后的图像;
(1)滑动邻域操作每次处理一个像素,输出图像中任何给定像素的值都通过给输入函数中对应像素邻域内像素值应用一个算法来确定。
某像素的邻域是指由该像素的相对位置确定的一系列像素。
邻域是一个矩形块,在图像矩阵中从一个元素向下一个元素移动时,邻域块向相同方向滑动;
(2)分离块是将矩阵分成m×n部分的矩阵分离框。
分离块从图像的左上角开始无重叠地覆盖图像矩阵。
如果这些块不能精确覆盖图像,则工具箱进行0填充。
五、实验小结:
(包括主要实验问题的最终结果描述、详细的收获体会,待解决的问题等)
【1】读取图像时,要注意图像的格式,如果格式不对就读取不出来;
【2】不同的运算方式得到的图像不同。
手写签名:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 医学 图像 处理