人人范文网 范文大全

数字图像处理上机报告

发布时间:2020-03-03 06:35:55 来源:范文大全 收藏本文 下载本文 手机版

练习一 常用MATLAB图像处理命令

一、练习目的

1、熟悉并掌握MATLAB工具的使用;

2、实现图像的读取、显示、代数运算和简单变换。

二、练习环境

Windows操作系统

Matlab 6.5或以上应用软件

三、练习内容

1、图像文件的读写

(1)imread函数用来实现图像文件的读取。 输入以下程序:

A=imread(\'文件名.扩展名\');%用imread函数来读入图像 注:设置路径 imshow(A);%用imshow函数来显示图像 得到的结果如图:

(2)imfinfo函数用来查询图像文件信息。 输入以下程序:

info=imfinfo(\'文件名.扩展名\');% 用imfinfo函数查询图像文件信息 得到: info =

Filename: \'文件名.扩展名\'

(4)imshow函数用来显示图像。

刚才介绍imread函数时已使用此函数。

(5)colorbar函数将颜色条添加到坐标轴对象中。 输入以下程序:

RGB=imread(\'***\');%图像读入

I=rgb2gray(RGB);%把RGB图像转换成灰度图像

imshow(I),colorbar(\'vert\')% 将颜色条添加到坐标轴对象中

得到如图:

2、图像处理的基本操作

一、图像代数运算

(1)imadd函数实现两幅图像的相加或者给一幅图像加上一个常数。 给图像每个像素都增加亮度的程序如下: I=imread(\'***\'); J=imadd(I,100);%给图像增加亮度 subplot(1,2,1),imshow(I) %填充 subplot(1,2,2),imshow(J) 结果如图5。

(2)imsubtract函数实现从一幅图像中减去一个常数。 输入以下程序实现从一幅图像中减去一个常数:

(3)immultiply实现两幅图像的相乘或者一幅图像的亮度缩放(图像乘以小于1或大于1的参数,比较效果)。 输入以下程序:

(4)imdivide函数实现两幅图像的除法或一幅图像的亮度缩放。 输入以下程序:

二、图像的空间域操作

(1)imrotate函数实现图像的旋转。 输入以下程序: I=imread(\'***\'); J=imrotate(I,45);%对图像进行旋转 subplot(1,2,1),imshow(I); subplot(1,2,2),imshow(J); 得到图:

练习二 数字图像处理的基本操作

一、练习目的

1、练习使用MATLAB工具进行数字图像处理;

2、实现图像的边缘提取、滤波、直方图修正等操作。

二、练习环境

Windows操作系统

Matlab 6.5或以上应用软件

三、练习内容

(1)imresize函数实现图像的缩放。 输入以下程序:

J=imread(\'文件名.扩展名\'); X1=imresize(J,2);%对图像进行缩放 figure,imshow(J) 结果如图

(2)imcrop函数实现图像的剪切。 输入以下程序: I=imread(\'***\'); I2=imcrop(I);%对图像进行剪切 subplot(填充),imshow(填充); subplot(填充),imshow(填充); 如图:

图像变换

(1)fft2函数和ifft2函数分别是计算二维的FFT和反变换。 输入以下程序: f=zeros(100,100); f(20:70,40:60)=1; imshow(f); F=fft2(f);% 计算二维的FFT F2=log(abs(F));%对幅值取对数 imshow(F2),colorbar

(2)dct2函数采用基于FFT的算法,用于实现较大输入矩阵的离散余弦变换。与之对应,idct2函数实现图像的二维逆离散余弦变换 输入以下程序: RGB=imread(\'***\'); I=rgb2gray(RGB); J=dct2(I);% 对I进行离散余弦变换 imshow(log(abs(J))),colorbar J(abs(J)

(3)edge函数用于提取图像的边缘。 输入以下程序:

RGB=imread(\'drum.bmp\'); I=rgb2gray(RGB); BW=edge(I);% 提取图像的边缘 imshow(I),figure,imshow(BW); 得到图

图像增强、分割和编码

(1)imhist函数产生图像的直方图。 A=imread(\'drum.bmp\');%读入图像

B=rgb2gray(A);%把RGB图像转化成灰度图像 imshow(B);%显示灰度图像

imhist(B)%显示灰度图像的直方图 得到图

(2)histeq函数用于对图像的直方图均衡化。 接上面程序:

C=histeq(B);%对图像B进行均衡化 imshow(C);%显示图像

imhist(C);%得到均衡化后的灰度直方图 得到如图

filter2函数实现均值滤波。 输入以下程序:

a=imread(\'noise.drum.jpg\'); I=rgb2gray(a); imshow(I); K1=filter2(fspecial(\'average\',3),I)/255; % 33的均值滤波 K2=补充;

% 55的均值滤波 K3=补充;

% 77的均值滤波 figure,imshow(K1); figure,imshow(K2); figure,imshow(K3); 得到图

(5)medfilt2函数实现中值滤波。 输入以下程序:

自查函数如何使用,并编程: 结果如图:

练习三

图像采样及图像类型转换

一、练习目的

1、熟悉并掌握MATLAB图像处理工具箱的使用;

2、试对自选图像分别进行4和16倍剪采样,查看其剪采样效果

3、将所给图,转换成256级灰度图像,8级灰度图像和2值图像

二、练习环境

MATLAB 6.5或以上版本、WIN XP或以上计算机

三、练习内容

使用MATLAB,对图像进行减采样。

a = imread(\'***.JPG\'); b = rgb2gray(a); [wid,hei]=size(b); %4倍减抽样

quartimg = zeros(wid/2+1,hei/2+1); i1 = 1; j1 = 1; for i=1:2:wid

for j=1:2:hei

quartimg(i1,j1) = b(i,j);

j1 = j1 + 1;

end i1 = i1 + 1; j1 = 1; end figure

imshow(uint8(quartimg)) 练习结果如图

%16倍减抽样

编程并运行显示图像结果:

图像类型

1、练习内容

试将自选图,转换成256级灰度图像,8级灰度图像和2值图像

2、练习方法及程序

使用MATLAB,进行图像类型变换。

a = imread(\'***.jpg\'); b = rgb2gray(a);

figure imshow(b) [wid,hei]=size(b); img8 = zeros(wid,hei); img2 = zeros(wid,hei); for i=1:wid

for j=1:hei

img8(i,j) = floor(b(i,j)/32);%得到8级灰度图像

end end figure

imshow(uint8(img8),[0,7]) for i=1:wid

for j=1:hei

补充; end end figure

imshow(uint8(img8),[0,2]) %得到2值图像

练习结果如图

练习四

数字图像的空间域处理

一、练习目的

1、熟悉并掌握MATLAB图像处理工具箱的使用;

2、熟悉图像相加的方法及效果

3、熟悉图像灰度扩展的方法及效果

4、熟悉图像缩放、旋转的方法及效果

二、练习环境

MATLAB 6.5或以上版本、WIN XP或以上计算机

三、练习内容 Part 1 (1)选择一幅图像***.jpg,设置输入输出变换的灰度级范围,a=0.3, b=0.6, c=0.1, d=0.9;

(2)设置非线性扩展函数的参数c=2;

(3)采用灰度倒置变换函数s=255-r进行图像变换;

(4)设置二值化图像的阈值,分别为level=0.4,level=0.7参考程序如下: I=imread(\'***.jpg\'); figure; subplot(1,3,1); imshow(I); title(\'原图\'); J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围 subplot(1,3,2); imshow(J); title(\'线性扩展\'); I1=double(I); %将图像转换为double类型 I2=I1/255; %归一化此图像 C=2; K=C*log(1+I2); %求图像的对数变换 subplot(1,3,3); imshow(K); title(\'非线性扩展\'); M=255-I; %将此图像取反 figure; subplot(1,3,1); imshow(M); title(\'灰度倒置\'); N1=im2bw(I,0.4); %将此图像二值化,阈值为0.4 N2=im2bw(I,0.7); %将此图像二值化,阈值为0.7 subplot(1,3,2); imshow(N1); title(\'二值化阈值0.4\'); subplot(1,3,3); imshow(N2); title(\'二值化阈值0.7\'); 练习结果与分析

(1) 练习结果如图3.7所示。

Part 2 读取一幅图片,如***.jpg,设置图像旋转的角度分别为450和900,采用图形旋转函数imrotate对图像进行旋转。程序如下,结果如图3.10。

I=imread(\'i_lena.jpg\'); J=imrotate(I,45); %图像进行逆时针旋转,默认采用最近邻法进行插值处理 K=imrotate(I,90); %默认旋转出界的部分不被截出 subplot(1,3,1); imshow(I); subplot(1,3,2); imshow(J); subplot(1,3,3); imshow(K); 练习结果与分析

(1)练习结果如图3.10所示。

练习五 数字图像的频域处理

一、练习目的

1、熟悉并掌握MATLAB工具的使用;

2、实现图像离散傅里叶变换并观察效果

3、实现图像离散余弦变换并观察效果

二、练习环境

Windows操作系统 Matlab 6.5或以上应用软件

三、练习内容 Part 1 选取一幅图像,进行离散傅里叶变换,再对其分别进行X轴与Y轴上的平移,得其离散傅里叶变换,观察三幅结果图。

I=imread(\'1.bmp\'); figure(1) imshow(real(I)); I=I(:,:,3); fftI=fft2(I); sfftI=fftshift(fftI); %求离散傅里叶频谱

%对原始图像进行二维傅里叶变换,并将其坐标原点移到频谱图中央位置

RRfdp1=real(sfftI); IIfdp1=imag(sfftI); a=sqrt(RRfdp1.^2+IIfdp1.^2); a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;

figure(2) imshow(real(a)); 练习结果与分析

Part 2 选取一幅图像,进行离散傅里叶变换,再对其进行一定角度的旋转,进行离散傅里叶变换。

%构造原始图像

I = zeros(256,256);

I(88:168,124:132) = 1; %图像范围是256*256,前一值是纵向比,后一值是横向比 imshow(I)

%求原始图像的傅里叶频谱

J = fft2(I); F = abs(J); J1 = fftshift(F);figure imshow(J1,[5 50])

%对原始图像进行旋转

J = imrotate(I,90,\'bilinear\',\'crop\'); figure imshow(J) %求旋转后图像的傅里叶频谱

J1 = fft2(J); F = abs(J1); J2 = fftshift(F);figure imshow(J2,[5 50]) 练习结果与分析

1) 练习结果如图4.4所示.

Part 3 选取一幅图像,进行离散余弦变换,并对其进行离散余弦反变换,观察其结果。

%对***.jpg文件计算二维DCT变换 RGB = imread(\'***.jpg \'); figure(1) imshow(RGB) I = rgb2gray(RGB); %真彩色图像转换成灰度图像 J = dct2(I); %计算二维DCT变换 figure(2) imshow(log(abs(J)),[]) %图像大部分能量集中在上左角处 figure(3); J(abs(J)

数字图像处理上机作业

数字图像处理上机实验(02091008)

数字图像处理

《数字图像处理》

数字图像处理学习报告

数字图像处理期中作业报告

数字图像处理读书报告11

数字图像处理课设报告

数字图像处理课程设计

数字图像处理课程设计

数字图像处理上机报告
《数字图像处理上机报告.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档