实验二 图像运算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二图像运算

一、实验目的

1.熟悉图像点运算和代数运算的实现方法

2.了解图像几何运算的简单应用

3.了解图像的邻域操作

4.掌握示例程序中各函数的作用及运用方法

二、实验内容

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. 图像的代数运算

图像加法运算

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)

图像减法运算

I=imread('rice.png');

imshow(I)

background = imopen(I,strel('disk',15)); %估计背景图像

figure, imshow(background);

I2=imsubtract(I,background); %从原始图像中减去背景图像

figure, imshow(I2)

图像乘法运算

I=imread('moon.tif');

J=immultiply(I,1.2);

K=immultiply(I,0.5);

imshow(I)

figure,imshow(J)

figure,imshow(K)

3. 图像的几何运算

在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。

图像缩放

I = imread('cameraman.tif');

figure,imshow(I);

scale = 0.5;

J = imres ize(I,scale);

figure,imshow(J);

读入图像‘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);

theta = 30;

K = imrotate(I,theta); % Try varying the angle, theta.

figure, imshow(K)

图像旋转

将图像顺时针和逆时针旋转任意角度,观察显示效果。

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)

图像剪切

通过交互式操作,从一幅图像中剪切一个矩形区域。

I=imread('trees.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)

I=imread('tire.tif');

f=inline('uint8(round(mean2(x)*ones(size(x))))'); %构造复合函数

I2=blkproc(I,[8 8],f); %滑动邻域操作,请查明该函数的作用

imshow(I)

相关文档
最新文档