一图像输入与输出基本操作.docx

上传人:b****8 文档编号:29592882 上传时间:2023-07-24 格式:DOCX 页数:19 大小:1.13MB
下载 相关 举报
一图像输入与输出基本操作.docx_第1页
第1页 / 共19页
一图像输入与输出基本操作.docx_第2页
第2页 / 共19页
一图像输入与输出基本操作.docx_第3页
第3页 / 共19页
一图像输入与输出基本操作.docx_第4页
第4页 / 共19页
一图像输入与输出基本操作.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

一图像输入与输出基本操作.docx

《一图像输入与输出基本操作.docx》由会员分享,可在线阅读,更多相关《一图像输入与输出基本操作.docx(19页珍藏版)》请在冰豆网上搜索。

一图像输入与输出基本操作.docx

一图像输入与输出基本操作

图像输入与输出基本操作

一、实验题目:

图像输入与输出操作

二、实验目的

学习在MATLAB环境下对图像文件的I/O操作,为读取各种格式的图像文件和后续进行图像处理打下基础。

三、实验内容

利用MATLAB为用户提供的专门函数从图像格式的文件中读/写图像数据、显示图像,以及查询图像文件的信息。

四、预备知识

熟悉MATLAB开发环境。

五、实验步骤:

(1)利用imread函数完成对图像文件的读取操作。

源代码:

I=imread('Couple.bmp');

imshowCouple.bmp

图像显示:

(2)利用imwrite函数完成图像的写入(保存)操作。

源代码:

I=imread('Couple.bmp');

imwrite(I,'111.bmp')

图像显示:

(3)利用imshow函数显示图像。

源代码:

I1=imread('lena.bmp');

I2=imread('image1.jpg');

I3=imread('Couple.bmp');

I4=imread('image2.jpg');

subplot(2,2,1),imshow(I1);

subplot(2,2,2),imshow(I2);

subplot(2,2,3),imshow(I3);

subplot(2,2,4),imshow(I4);

图像显示:

在一个图形窗口中显示多幅图像

源代码:

I=imread('Couple.bmp');

imshow(I);

colorbar;

图像显示:

显示图像并加入颜色条

从上图可知,该图像是数据类型为uint8的灰度图像,其灰度级范围从0

-255。

(4)利用imfinfo函数查询图像文件的有关信息。

源代码:

info=imfinfo('Couple.bmp')

显示结果:

info=

Filename:

'Couple.bmp'

FileModDate:

'29-Apr-200910:

11:

48'

FileSize:

66616

Format:

'bmp'

FormatVersion:

'Version3(MicrosoftWindows3.x)'

Width:

256

Height:

256

BitDepth:

8

ColorType:

'indexed'

FormatSignature:

'BM'

NumColormapEntries:

256

Colormap:

[256x3double]

RedMask:

[]

GreenMask:

[]

BlueMask:

[]

ImageDataOffset:

1078

BitmapHeaderSize:

40

NumPlanes:

1

CompressionType:

'none'

BitmapSize:

0

HorzResolution:

2834

VertResolution:

2834

NumColorsUsed:

0

NumImportantColors:

0

图像平滑与滤波

一、实验题目:

图像平滑与滤波

二、实验目的:

在熟悉图像平滑的基本原理和方法的基础上,在理论指导下,能在MATLAB环境下对图像进行平滑处理。

本实验要求用线性平滑滤波、中值平滑滤波、频域低通滤波的方法进行程序设计。

经过平滑处理,对结果图像加以比较,得出自己的实验结论。

三、实验内容:

(1)利用MATLAB为用户提供的专门函数实现均值滤波。

(2)利用MATLAB为用户提供的专门函数实现中值滤波。

(3)编写频域理想低通、巴特沃斯低通及高斯低通滤波函数。

四、预备知识:

(1)熟悉平滑滤波原理。

(2)熟悉频域滤波原理。

(3)熟悉在MATLAB环境下对图像文件的I/O操作。

五、实验步骤:

(1)对给定的图像添加均值为0,方差分别为200、400的高斯噪声,以及概率分别为0.1、0.2的椒盐噪声,显示添加噪声后的图像。

源代码:

a)加入噪声强度为d=0.2的椒盐噪声:

I=imread('Couple.bmp');

J=imnoise(I,'salt&pepper',0.2);%给图像加入椒盐噪声

subplot(1,2,1);imshow(I);title('原始图像');

subplot(1,2,2);imshow(J);title('加入椒盐噪声的图像')

图像显示:

b)加入噪声强度为d=0.1的椒盐噪声:

I=imread('Couple.bmp');

J=imnoise(I,'salt&pepper',0.1);%给图像加入椒盐噪声

subplot(1,2,1);imshow(I);title('原始图像');

subplot(1,2,2);imshow(J);title('加入椒盐噪声的图像')

图像显示:

原始图像和加入椒盐噪声后的图像

c)加入均值m=0,方差v=200的高斯噪声:

I=imread('Couple.bmp');

J=imnoise(I,'gaussian',0,200);%给图像加入高斯噪声

subplot(1,2,1);imshow(I);title('原始图像');

subplot(1,2,2);imshow(J);title('加入高斯噪声图像')

图像显示:

d)加入均值m=0,方差v=400的高斯噪声:

I=imread('Couple.bmp');

J=imnoise(I,'gaussian',0,400);%给图像加入高斯噪声

subplot(1,2,1);imshow(I);title('原始图像');

subplot(1,2,2);imshow(J);title('加入高斯噪声图像')

图像显示:

(2)对加噪图像分别进行3×3、5×5、9×9的均值滤波,显示并比较滤波结果。

源代码:

I=imread('Couple.bmp');

J=imnoise(I,'salt&pepper',0.2);%给图像加入椒盐噪声

h=fspecial('average',3);

s=fspecial('average',5);

p=fspecial('average',9);

gd=imfilter(J,h);

qw=imfilter(J,s);

er=imfilter(J,p);

subplot(2,2,1);imshow(J);title('加入椒盐噪声的图像');

subplot(2,2,2);imshow(gd);title('3*3模板均值滤波');

subplot(2,2,3);imshow(qw);title('5*5模板均值滤波');

subplot(2,2,4);imshow(er);title('9*9模板均值滤波');

图像显示:

(3)对加噪图像分别进行3×3、5×5、9×9的中值滤波,显示并比较滤波结果。

源代码:

I=imread('Couple.bmp');

J=imnoise(I,'salt&pepper',0.2);%给图像加入椒盐噪声

%h=fspecial('average',3);

%s=fspecial('average',5);

%p=fspecial('average',9);

gd=medfilt2(J,[33]);

qw=medfilt2(J,[55]);

er=medfilt2(J,[99]);

subplot(2,2,1);imshow(J);title('加入椒盐噪声的图像');

subplot(2,2,2);imshow(gd);title('3*3模板中值滤波');

subplot(2,2,3);imshow(qw);title('5*5模板中值滤波');

subplot(2,2,4);imshow(er);title('9*9模板中值滤波');

图像显示:

(4)对加噪图像进行截止频率D0分别为10、25的理想低通、巴特沃斯低通及高斯低通滤波,显示并比较滤波结果。

理想低通

源代码:

I=imread('lena.bmp');

I=imnoise(I,'gaussian');

[f1f2]=freqspace(size(I),'meshgrid');%生成频率序列矩阵

Hd=ones(size(I));%构造低通滤波器大小

r=sqrt(f1.^2+f2.^2);%构造低通滤波器决策函数

Hd(r>0.5)=0;%构造低通滤波器

Y=fft2(double(I));%对图像I进行Fourier变换

Y=fftshift(Y);%频谱平移

Ya=Y.*Hd;%低通滤波

Ya=ifftshift(Ya);%反变换

Ia=ifft2(Ya);

imshow(I);%输出

title('加噪图像');

figure

(2);

imshow(uint8(Ia));

title('理想低通滤波后图像');

%保存结果

imwrite(uint8(Ia),'after_lvbo','bmp');

显示结果:

巴特沃斯低通滤波:

源代码:

D0=10

%Butterworth低通滤波器

I=imread('Couple.bmp');

I=imnoise(I,'salt&pepper',0.2);

[f1f2]=freqspace(size(I),'meshgrid');

D=10;%截止频率

n=4;

Hd=ones(size(I));

r=sqrt(f1.^2+f2.^2);

fori=1:

size(I,1);

forj=1:

size(I,2);

t=r(i,j)/(D*D);

Hd(i,j)=1/(t^n+1);%构造滤波函数

end

end

Y=fft2(double(I));

Y=fftshift(Y);

Ya=Y.*Hd;

Ya=ifftshift(Ya);

Ia=ifft2(Ya);

figure

(1);

imshow(I);

title('加噪后图像');

figure

(2);

imshow(uint8(Ia));

title('butterworth滤波后图像');

显示结果:

源代码:

D0=25

%Butterworth低通滤波器

I=imread('Couple.bmp');

I=imnoise(I,'salt&pepper',0.2);

[f1f2]=freqspace(size(I),'meshgrid');

D=25;%截止频率

n=4;

Hd=ones(size(I));

r=sqrt(f1.^2+f2.^2);

fori=1:

size(I,1);

forj=1:

size(I,2);

t=r(i,j)/(D*D);

Hd(i,j)=1/(t^n+1);%构造滤波函数

end

end

Y=fft2(double(I));

Y=fftshift(Y);

Ya=Y.*Hd;

Ya=ifftshift(Ya);

Ia=ifft2(Ya);

figure

(1);

imshow(I);

title('加噪后图像');

figure

(2);

imshow(uint8(Ia));

title('butterworth滤波后图像');

图像显示:

图像增强

一、实验题目:

图像增强

二、实验目的:

(1)了解图像增强的内容和意义;

(2)掌握基于空域的图像增强方法;

(3)掌握基于频域的图像增强方法。

三、实验内容:

(1)综合运用直方图均衡、灰度变换、锐化空域滤波等方法编程实现对图像的空域增强处理;

(2)编程实现图像的频域增强处理。

四、预备知识:

(1)熟悉MATLAB图像输入输出操作;

(2)熟悉图像的模板操作;

(3)熟悉图像的频域变换处理;

(4)熟悉二维频谱的显示方法。

五、实验步骤:

(1)读入图像;

(2)针对图像特点设计方案,综合运用直方图均衡、灰度变换、锐化滤波等空

域增强方法编程实现对图像的增强处理;

(3)编程实现频域增强处理。

源代码:

clc

clearall

image=imread('Couple.bmp');

figure

(1);

subplot(221);

imhist(image);

title('原始图像直方图');

subplot(222);

imshow(image);

title('原始图像');

b=histeq(image,256);%将直方图均衡化为256级

subplot(223);

imhist(b);

title('均衡化后的直方图');

subplot(224);

imshow(b);

title('直方图均衡图像增强后效果');

图像显示:

图像灰度调整:

源代码:

Im=imread('Couple.bmp');

J=imadjust(Im,[0.30.7],[01]);

subplot(2,2,1);

imshow(Im);

title('原图');

subplot(2,2,2);

imhist(Im);

title('原图直方图');

subplot(2,2,3);

imshow(J);

title('灰度调整结果');

subplot(2,2,4);

imhist(J);

title('灰度调整后的直方图');

图像显示:

%利用灰度变化进行图像增强

low_high_in=stretchlim(image);%得到图像的灰度变化范围

low_in=low_high_in

(1);

high_in=low_high_in

(2);

low_out=0.2;%灰度变化后图像灰度最小值(归一化)

high_out=0.8;%灰度变化后图像灰度最大值(归一化)

gamma=0.55;%gamma大于1时图像变暗,小于1时图像变亮

J=imadjust(image,[low_inhigh_in],[low_outhigh_out],gamma);

figure

(2);

subplot(221);

imshow(J);

title('灰度变化图像增强效果');

%锐化空域滤波增强图像

h=[-1-1-1;-18-1;-1-1-1];%锐化滤波器模板

y=imfilter(image,h);

subplot(222);

imshow(uint8(y));

title('锐化空域滤波增强效果');

%频率滤波处理

[f1f2]=freqspace(size(image),'meshgrid');%生成频率序列矩阵

D=0.5;%截止频率

n=4;

Hd=ones(size(image));

r=sqrt(f1.^2+f2.^2);

fori=1:

size(image,1);

forj=1:

size(image,2);

t=(D*D)/r(i,j);

Hd(i,j)=1/(t^n+1);%构造butterworth高通滤波函数

end

end

Y=fft2(double(image));

Y=fftshift(Y);

Ya=Y.*Hd;

Ya=ifftshift(Ya);

Ia=ifft2(Ya);

subplot(223);

imshow(Ia);

title('butterworth高通滤波效果');

%带通滤波

[f1f2]=freqspace(size(image),'meshgrid');%生成频率序列矩阵

r=sqrt(f1.^2+f2.^2);

gd=ones(size(image));

gd(r>=0.6)=0;

gd(r<=0.2)=0;

image_fft=fft2(image);

image_fft=fftshift(image_fft);

Y=image_fft.*gd;

Ya=ifftshift(Y);

Ya=ifft2(Ya);

subplot(224);

imshow(Ya);

title('带通滤波进行图像增强后效果');

%同态滤波(滤波系统采用低通滤波)

image=imread('Couple.bmp');

[mn]=size(image);

image_ln=zeros(m,n);

fori=1:

m

forj=1:

n

image_ln(i,j)=log(double(image(i,j)));

end

end

image_ln_fft=fft2(image_ln);

image_ln_fft=fftshift(image_ln_fft);

[f1f2]=freqspace(size(image),'meshgrid');%生成频率序列矩阵

r=sqrt(f1.^2+f2.^2);

gd=ones(size(image));

gd(r>0.3)=0;

Y=image_ln_fft.*gd;

Ya=ifftshift(Y);

Ya=ifft2(Ya);

fori=1:

m

forj=1:

n

Ya(i,j)=exp(double(Ya(i,j)));

end

end

figure(3);

imshow(uint8(Ya));

title('同态滤波输出效果');

图像显示:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1