数字图像处理实验 实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二MATLAB图像运算
一、实验目的
1.了解图像的算术运算在数字图像处理中的初步应用。
2.体会图像算术运算处理的过程与处理前后图像的变化。
二、实验步骤
1.图像的加法运算-imadd
对于两个图像与的均值有:
推广这个公式为:
其中,。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。
说明:两个示例图像保存在默认路径下,文件名分别为'rice、png'与'cameraman、tif',要求实现下图所示结果。
代码:
I1 = imread('rice、png');
I2 = imread('cameraman、tif');
I3 = imadd(I1, I2,'uint8');
I4 = imadd(I1, I2,'uint16');
subplot(2, 2, 1), imshow(I1), title('Ô-ʼͼÏñ1');
subplot(2, 2, 2), imshow(I2), title('Ô-ʼͼÏñ2');
subplot(2, 2, 3), imshow(I3), title('8λͼÏñÏÔʾ');
subplot(2, 2, 4), imshow(I4), title('16λͼÏñÏÔʾ');
结果截图:
2.图像的减法运算-imsubtract
说明:
背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。
示例代码如下:
I1 = imread('rice、png');
background = imerode(I1, strel('disk', 15));
rice2 = imsubtract(I1, background);
subplot(2, 2, 1), imshow(I1), title('Ô-ʼͼÏñ');
subplot(2, 2, 2), imshow(background), title('±³¾°Í¼Ïñ');
subplot(2, 2, 3), imshow(rice2), title('´¦ÀíºóµÄͼÏñ');
结果截图:
3.图像的乘法运算-immultiply
说明:示例图像保存在默认路径下,文件名分别为'moon、tif',要求实现下图所示结
果(整体亮度增加1、5倍)。
代码如下:
moon = imread('moon、jpg');
moon2 = immultiply(moon, 1、5);
subplot(1, 2, 1), imshow(moon), title('Ô-ʼͼÏñ');
subplot(1, 2, 2), imshow(moon2), title('´¦ÀíºóµÄͼÏñ');
4.图像的除法运算-imdivide
K=imdivide (I,J);
图像的除法通常用于校正成像设备的非线性误差,也可用于检测两张图像间的差别,它给出的相应像素的变化比率,而不就是每个像素的绝对差异。
代码如下:
>> I=imread('cameraman、tif');
>> J = double(I);
>> J = J*0、43+90;
>> I2 = uint8(J);
>> Ip = imdivide(I,I2);
>> imshow(Ip,[])
结果
5.图像更的几何运算
Matlab提供了图像大小变化、旋转、错切、删除及反射等图像的几何操作,达到图像的配准与几何校正的目的。
(1)改变图像的大小-imresize
说明:要求将图像大小缩小至原来的一半
代码:
I1 = imread('rice、png');
I2= imresize(I1, 0、5);
结果截图
(2)图像旋转-imrotate
说明:要求将图像逆时针旋转90度
代码:
I1 = imread('cameraman、tif');
I2= imrotate(I1, 90);
结果截图
(3)空间变换
说明:要求对图像进行仿射变换
>> I = imread('cameraman、tif');
tform = maketform('affine',[1 0 0; 、5 1 0; 0 0 1]);
J = imtransform(I,tform);
imshow(I), figure, imshow(J)
三、思考题
由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?