第二次 数字图像处理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
1.熟悉图像点运算和代数运算的实现方法
2.了解图像几何运算的简单应用
3.了解图像的邻域操作
二、实验环境
1、机器硬件配置:
CPU :英特尔酷睿i5-2410M 2.30GHz
内存: 4.00GB
显卡: NVIDIA GeForce GT 550M+Intel GMA HD 主硬盘:750GB SATA
2、操作系统版本:windows 7
3、软件版本、配置: matlab7.0
三、实验内容
1.图像点运算
2.图像的代数运算
3.图像的集合运算
4.图像的领域运算
5.思考题
四、实验内容
1.图像点运算
读入图像‘rice.png’,通过图像点运算改变对比度。
rice=imread('rice.png');
subplot(131),imshow(rice)
I=double(rice); %转换为双精度类型
J=I*0.43+60;
rice2=uint8(J); %转换为uint8
subplot(132),imshow(rice2)
J=I*1.5-60;
rice3=uint8(J); %转换为uint8
subplot(133),imshow(rice3)
2.图像的代数运算
A)图像加法运算
I=imread('rice.png');
imshow(I)
J=imread('cameraman.tif');
figure,imshow(J)
K=imadd(I,J);
figure,imshow(K)
K2=imadd(I,J,'uint16');
figure,imshow(K2,[])
RGB=imread('flowers.tif');
RGB2=imadd(RGB,50);
imshow(RGB)
figure,imshow(RGB2)
RGB3=imadd(RGB,100);
figure,imshow(RGB3)
RGB=imread('autumn.tif'); RGB2=imadd(RGB,50);
imshow(RGB)
figure,imshow(RGB2)
RGB3=imadd(RGB,100);
figure,imshow(RGB3)
I=imread('rice.png');
imshow(I)
background = imopen(I,strel('disk',15)); %估计背景图像figure, imshow(background);
I2=imsubtract(I,background); %从原始图像中减去背景图像figure, imshow(I2)
B)图像乘法运算
I=imread('moon.tif');
J=immultiply(I,1.2);
K=immultiply(I,0.5);
imshow(I)
figure,imshow(J)
figure,imshow(K)
3.图像的几何运算
C)图像缩放
读入图像‘trees.tif’,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。
I=imread('trees.tif');
J=imresize(I,1.25);
K=imresize(I,0.8);
imshow(I)
figure,imshow(J)
figure,imshow(K)
Y=imresize(I,[100,150]);
figure,imshow(Y)
在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');
figure,imshow(I);
scale = 0.5;
J = imresize(I,scale);
figure,imshow(J);
D)图像旋转
将上述图像顺时针和逆时针旋转任意角度,观察显示效果。
I=imread('trees.tif');
J=imrotate(I,30,'bilinear');
J1=imrotate(I,30,'bilinear','crop');
imshow(I)
figure,imshow(J)
figure,imshow(J1)
J2=imrotate(I,-15,'bilinear');
figure,imshow(J2)
在matlab环境中,程序首先读取图像,然后调用图像旋转函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');
figure,imshow(I);
theta = 30;
K = imrotate(I,theta); % Try varying the angle, theta.
figure, imshow(K)
E)图像剪切
通过交互式操作,从一幅图像中剪切一个矩形区域。
I=imread('autumn.tif');
imshow(I);
I1=imcrop;
figure,imshow(I1)
I2=imcrop(I,[30 60 120 160]);
figure,imshow(I2)
4.图像的邻域操作
读入图像‘tire.tif’,分别使用函数nlfilter和blkproc对图像进行滑动邻域操作和分离邻域操作。
I=imread('tire.tif');
f=inline('max(x(:))'); %构造复合函数
I2=nlfilter(I,[3 3],f); %滑动邻域操作
imshow(I)
figure,imshow(I2)