数字图像处理上机报告_图像处理上机实验报告

2020-02-28 其他范文 下载本文

数字图像处理上机报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“图像处理上机实验报告”。

练习一 常用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)

《数字图像处理上机报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数字图像处理上机报告
点击下载文档
相关专题 图像处理上机实验报告 报告 图像处理 数字 图像处理上机实验报告 报告 图像处理 数字
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文