数字图像处理实验.docx

上传人:b****5 文档编号:30230138 上传时间:2023-08-07 格式:DOCX 页数:11 大小:1,009.24KB
下载 相关 举报
数字图像处理实验.docx_第1页
第1页 / 共11页
数字图像处理实验.docx_第2页
第2页 / 共11页
数字图像处理实验.docx_第3页
第3页 / 共11页
数字图像处理实验.docx_第4页
第4页 / 共11页
数字图像处理实验.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数字图像处理实验.docx

《数字图像处理实验.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验.docx(11页珍藏版)》请在冰豆网上搜索。

数字图像处理实验.docx

数字图像处理实验

 

数字图像实验报告

 

院系

物理工程学院

专业

测试计量技术与仪器

姓名

代啟林

学号

201312131581

日期

2013年1月3日

 

数字图像处理实验内容

一、实验一:

图像文件读取和格式转换(BMP、JPG),FMRI_MRI利用Matlab编程,实现多种格式图像的读取,显示和格式转换。

1.Bmp格式文件的读取

源程序1

[X,map]=imread('C:

\Users\Administrator\Desktop\实验\fmri.bmp');

imshow(X)

Fmri.bmp转换成fmri.jpg格式

源程序2

A=imread('C:

\Users\Administrator\Desktop\实验\fmri.bmp');

imwrite(A,'fmri.jpg')

imshow('fmri.jpg')

2.Bmp格式文件的读取

源程序3

[X,map]=imread('C:

\Users\Administrator\Desktop\实验\mri.bmp');

imshow(X)

Fmri.bmp转换成fmri.jpg格式

源程序4

A=imread('C:

\Users\Administrator\Desktop\实验\mri.bmp');

imwrite(A,'mri.jpg')

imshow('mri.jpg')

3.Img格式文件的读取与转换

(1)对img格式文件读取

源程序5

fid=fopen('C:

\Users\Administrator\Desktop\实验\cell_128.img','r');%打开无格式的图像文件

data=(fread(fid,[256,256],'uint8'))';%转换成为二元图像文件

figure

(1)

imagesc(data),colormap(gray),title('cell_128原图像','Color','r');%显示原图像

(2)Img格式文件转换

>>fid=fopen('C:

\Users\Administrator\Desktop\实验\cell_128.img','r');%打开无格式的图像文件

>>data=(fread(fid,[256,256],'uint8'))';%转换成为二元图像文件

>>figure

(1)

>>imagesc(data),colormap(gray),title('cell_128原图像','Color','r');%显示原图像

>>imwrite(A,'cell_128.jpg')

>>imshow('cell_128.jpg')

同样的,我们分别对fing_128.img,lena.img,进行读取,其转换过程如上cell_128.img转换过程一样,这里我不在累述。

fid=fopen('C:

\Users\Administrator\Desktop\实验\fing_128.img','r');%打开无格式的图像文件

data=(fread(fid,[256,256],'uint8'))';%转换成为二元图像文件

figure

(1)

imagesc(data),colormap(gray),title('fing_128原图像','Color','r');%显示原图像

fid=fopen('C:

\Users\Administrator\Desktop\实验\lena.img','r');%打开无格式的图像文件

data=(fread(fid,[256,256],'uint8'))';%转换成为二元图像文件

figure

(1)

imagesc(data),colormap(gray),title('lena原图像','Color','r');%显示原图像

二、实验二:

图像的直方图调整和灰度变换

1.图“fmri.bmp”为一幅原图像,该图像右边的剪切图像为从“fmri.bmp”中剪切出的将用于分析的子图像块。

为了便于分析与观察,把子图像块旋转90度置于水平位置并把该图存在名为“fmri.bmp”的图像文件中。

以上的过程可用以下代码实现。

x=imread('C:

\Users\Administrator\Desktop\实验\fmri.bmp');

figure,imshow(x);

y=imcrop(x);

figure,imshow(y,[]);

z=imrotate(y,90);

imwrite(z,'C:

\Users\Administrator\Desktop\实验\fmri.bmp','bmp');

isrgb(z)

2.通过比较灰度原图和经均衡化后的图形可见图像变得清晰,均衡化后的直方图形状比原直方图的形状更理想。

程序代码如下:

x=imread('C:

\Users\Administrator\Desktop\实验\university.jpg');

y=rgb2gray(x);

subplot(221),imshow(y);title('Fig1.jpg灰度化图像');

subplot(222),imhist(y);title('均衡化前直方图');

I=histeq(y);

subplot(223),imshow(I);title('均衡化后图像');

subplot(224),imhist(I);title('均衡化后直方图');

运行结果

通过灰度调整把感兴趣的灰度范围拉开,使图像中亮的越亮,暗的越暗,分别取原图中要变换的灰度范围为(0.3,0.7)和(0.5,0.6),把变换后的图像相比较,见图3,可知原图所变换的灰度范围小,则调整后的图像反差大。

程序代码如下:

x=imread('C:

\Users\Administrator\Desktop\实验\mri_s6.jpg');

y=imadjust(x,[0.30.7],[]);

z=imadjust(x,[0.50.6],[]);

subplot(211),imshow(y);title('原图所变换的灰度范围(0.3,0.7)');

subplot(212),imshow(z);title('原图所变换的灰度范围(0.5,0.6)');

三、实验三:

图像的变换和频域滤波:

(1)完成图像的快速傅立叶变换;

(2)频域实现低通滤波。

(1)用MATLAB中的fft2函数对其进行FFT:

同屏显示原图f1和FFT(f1)的幅度谱图;

图2

%源程序2

a=zeros(128,128);

a(33:

97,57:

73)=255;

F1=fft2(a);

subplot(121);

imshow(a);

subplot(122);

mesh(1:

128,1:

128,abs(F1));

(2)频域滤波

对如所示的数字图像lena.img(256×256大小、256级灰度)进行频域的理想低通、高通滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。

①原图频谱图

%源程序6

file=fopen('C:

\Users\thebluedb\Desktop\实验\lena.img','r');

lena=fread(file,[256,256],'uint8');

F=fft2(lena);

F1=fftshift(F);

F1temp=log(F1+1);

mesh(0:

255,0:

255,abs(F1));

②理想低通滤波

%源程序7

figure;

r=88;%另取24、11、5

m=256;n=256;

fori=1:

m

forj=1:

n

if(((i-m/2)^2+(j-n/2)^2)

mask(i,j)=1;

else

mask(i,j)=0;

end

end

end

F2=F1.*mask;

F2temp=log(F2+1);

mesh(1:

256,1:

256,abs(F2))

③低通滤波结果图

%源程序8

Figure;

ilena1=ifft2(ifftshift(F2));

imshow(ilena1,[0,255]);

四、实验四:

磁共振大脑断层图像的边界提取(MRI)

X=imread('C:

\Users\Administrator\Desktop\实验\fmri.bmp','bmp');

B=edge(x,'sobel');

subplot(221);

imshow(B);title('sobel边界提取');

c=edge(x,'prewitt');

subplot(222);

imshow(c);title('prewitt边界提取');

d=edge(x,'roberts');

subplot(223);

imshow(d);title('roberts边界提取');

e=edge(x,'canny');

subplot(224);

imshow(e);title('canny边界提取');

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

当前位置:首页 > 考试认证 > 从业资格考试

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

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