图像运算-实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

课程名称___________ 医学图像处理________________ 实验名称___________ 图像运算____________________ 专业班级___________ 姓名______________________ 学号______________ 实验日期___________________ 实验地点___________

2015 —2016学年度第2 学期

J=I*1.5-60;

skull3=uint8(J); %转换为 uint8

subplot(133),imshow(skull3) %在第三块区域绘制图像

运行结果:

分析:1)subplot是用于将多个图像画到一个平面上的函数。subplot(m,n,p,) 中的m表示m行,n 表示n列,p表示从左到右的第几块区域;

2) uint8表示8位无符号的整型数

据类型,以此方式存储的图像称作8位图像;而Matlab中数值一般采用double型的存储和运算,因此在进行本题的灰度变换运算时,应先把skull

图像转化为double格式;

3) 线性灰度变换函数当a=1,b=0时,输出图像像素不发生变化;当 a=1,b 0

时,

输出图像所有灰度值上移或下移;当0 a 1时,输出图像灰度级压缩,对比度减小,

如图2所示;当a 1时,输出图像灰度级拓展,对比度增强,如图3所示;当a 0

时,输出图像暗区域变亮,亮区域变暗,图像求反。

2、图像的代数运算

例2 图像加法运算

skull=imread('skull.tif); % 读取图像

imshow(skull) % 显示图像

J=imread('camerama n.tif); % 读取图像

figure,imshow(J) % 显示图像

匸imresize(skull,[256,256]); %将skull 图像转换为 256 256的大小K=imadd(I,J); %对两幅图像的灰度值进行加法运算

figure,imshow(K) %显示图像

K2=imadd(l,J,'ui

nt16');

%对两幅图像的灰度值进行加法运算,并转化为ui

nt16

figure,imshow(K2,[]) %显示图像

RGB=imread('skull.tif);

RGB2=imadd(RGB,50);

%读取图像

%将图像skull与常数50相加

imshow(RGB) % 显示RGB 图像

figure,imshow(RGB2) %显示亮度增强50的RGB图像

RGB3=imadd(RGB,100); %将图像skull与常数100相加

figure,imshow(RGB3) %显示亮度增强100的RGB图像

运行结果:

图6 两幅相加后的图像

图5 cameraman 原图像

图4 skull原图像

图9 亮度增强50后的图像图7 转化为uint16的图像图8 RGB原图

图10 亮度增强100后的图像

分析:1) imadd是用于实现两图像灰度值相加的函数,imadd(l,J)中的I和J要求大小相等,由于我读取的skull图像的尺寸为1280 1024,因此在进行I和J的加法运算前须利用

imresize函数把skull图像转换为256 256的大小;

2) I和J进行相加后的图像如图6所示,而在I和J相加的基础上将其转换为 uint16的图像

如图7所示,我们可以清楚的发现图 6比图7的更亮,但细节比图7的模糊,这是由于

Matlab在运算后会自动将图像转换为double型,因此uint16的图像是比double型

的图像更清晰;

3) imadd ( RGB,50 )是将一个常数50加到RGB图像上,即使图像的灰度级增强了 50, 如图

9所示,以此类推,图10为灰度级增强了 100的图像。

例3 图像减法运算

l=imread('skull.tif); % 读取图像

imshow(I) %显示图像

backgrou nd=imope n(l,strel('disk',15)); % 估计圆盘半径为 15 的背景图像

figure,imshow(backgro un d); % 显示背景图

I2=imsubtract(I,backgro un d); %从原始图像中减去不均匀的背景图

运行结果:

分析:1 ) imopen 开运算属于形态图像处理,是先腐蚀后膨胀,可以使边界平滑,消除尖刺, 断开窄

小的连接,保持面积大小不变;

strel 是用于构建结构元素对象,

imopen(l,strel('disk',15)) 就是构建圆盘半径为15的背景图,如图12所示;

2)imsubtract 函数是用于两幅图像的相减运算,如图

13所示,减去不均匀的部分后,

图像变得更加平滑。

例4 图像的乘法运算

l=imread('skull.tif

);

%读取图像

J=immultiply(l,1.2);

%图像的乘法,缩放因子是1.2>1,增强图像的亮度 K=immultiply(l,0.5);

%图像的乘法,缩放因子是 0.5<1 ,减小图像的亮度

imshow(I)

%显示原图像

figure,imshow(J) %显示亮度增强图像 figure,imshow(K) %显示亮度减小图像

图11 skull 原图

图12 背景图 图13 减去背景图后的图像

相关文档
最新文档