第二次 数字图像处理实验报告

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

相关文档
最新文档