图像运算-实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 减去背景图后的图像