图像的灰度变换及代数运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数字图像处理》实验报告
学院计算机科学与技术学院
年级2013级
专业计算机科学与技术
学号2013434026
姓名__ _ 许林青_____ _____
日期_________2015.10.14____________
实验四图像的灰度变换及代数运算
一、实验目的
1、学习使用Matlab中的图像处理工具箱;
2、使用Matlab中的图像处理工具箱实现图像文件的读、写和显示;
3、使用Matlab中的图像处理工具箱实现获取图像文件的基本信息。
二、实验内容
1、利用Matlab的Help功能,查找并学会使用图像处理工具箱中的如下命令或函数:(1)图像的剪切imcrop()
(2)图像的加imadd()
(3)图像的减imsubtract()
(4)图像的乘immultiply()
(4)图像的除imdivide()
2、编程实现:
(1)读入2幅图像并显示;
>> I=imread('H:\数字图像\图片1.jpg');
subplot(211);
imshow(I)
J=imread('H:\数字图像\图片2.jpg');
subplot(212);
imshow(J);
(2)将2幅图像剪切成相同大小;
I=imread('I:\数字图像\图片1.jpg');
J=imread('I:\数字图像\图片2.jpg');
I1=imcrop(I,[100, 100, 100, 100])
J1=imcrop(J,[100, 100, 100, 100])
figure(1);
subplot(211);
imshow(I1);
subplot(212);
imshow(J1);
h=imadd(I1,J1)
(3)将2幅图像叠加并显示,灰度变换(变暗)后再显示;
I=imread('I:\数字图像\图片1.jpg');
J=imread('I:\数字图像\图片2.jpg');
I1=imcrop(I,[100, 100, 100, 100])
J1=imcrop(J,[100, 100, 100, 100])
figure(1);
subplot(211);
imshow(I1);
subplot(212);
imshow(J1);
h=imadd(I1,J1)
figure(3), imshow(h);
A=rgb2gray(h); imshow(h);
figure,imshow(A)
(4)从叠加图像中恢复原来2幅图像并显示;
I=imread('I:\数字图像\图片1.jpg');
J=imread('I:\数字图像\图片2.jpg');
I1=imcrop(I,[100,100,100,100])
J1=imcrop(J,[100,100,100,100])
K=imadd(I1/2,J1/2);
subplot(221)
imshow(K);
I2=imsubtract(K,J1/2);
subplot(223)
imshow(I2);
J2=imsubtract(K,I1/2)
subplot(224)
imshow(J2)
4、思考:
(1)2幅图像大小不同能否直接相加?
答:不能。
(2)用矩阵加和用imadd()结果是否一样?
答:一样,imadd()函数将相应矩阵X中的元素与相应矩阵 Y 中的元素进行叠加,
返回一个叠加结果作为输出数列 Z 中对应的元素,与矩阵相加相同。但imadd不
支持3张及以上图。
(3)叠加后的图像和2幅原图的颜色一样吗?为什么?
答:不一样,超出255的部分自动处理。
(4)从叠加图像中恢复出的2幅图像和原图比有变化吗?为什么?
答:图像变暗,清晰度降低。