数字图像处理:实验一 MATLAB 图像处理基础

您所在的位置:网站首页 图像的基本类型可以分为两种 数字图像处理:实验一 MATLAB 图像处理基础

数字图像处理:实验一 MATLAB 图像处理基础

2023-10-03 04:43| 来源: 网络整理| 查看: 265

实验一 MATLAB 图像处理基础 MATLAB 具有强大的图像处理工具箱,有助于人们更好的理解各种图像处理算法,通 过调用工具箱中的函数,可以减少编程的复杂性,简化编程。本次实验主要掌握 MATLAB中的一些基本图像操作函数,包括图像的输入、显示、查看图像属性、改变大小、获取图像的统计信息、保存、多波段图像读写等功能,并进行简单的图像处理编程操作。 一、实验目的

1.进一步巩固对Matlab开发环境的认识; 2.理解图像处理相关函数,掌握其用法; 3.理解掌握文件操作函数; 4.掌握matlab的帮助命令,学会使用matlab的帮助功能; 5.掌握matlab程序设计基本方法,通过编程实现简单的图像处理操作。

二、实验基础

1.图像处理相关函数 Matlab提供了多种图像处理函数,表1列出一些函数及其功能。

imread 读取图像 imshow 图像显示 imwrite 保存图像 colorbar 显示颜色条 imfinfo 获取图像信息 subimage 显示图像 imresize 改变图像尺寸 imcrop 剪切图像 imrotate 图像缩放 imhist 显示图像直方图 mean 计算图像均值 warp 纹理映射 std2 计算图像标准差 multibandread 读多波段二进制图像 corr2 计算相关系数 multibandwrite 写多波段二进制图像

2.文件操作函数 fopen 打开文件 fread 读二进制文件 fclose 关闭文件 fwrite 写二进制文件 fscanf 读文本文件 fprintf 写文本文件 feof 测试指针是否在文件结束位置 fseek 设定文件指针位置 frewind 重设指针至文件起始位置 ftell 获取文件指针位置

3.图像灰度直方图 图像灰度直方图是灰度级的函数,描述图像中每种灰度级像素个数或频率。横坐标是灰度级,纵坐标是每一灰度级具有的像元数目或灰度级出现的频率。 灰度级频率计算公式: v_i=n_i/n 式中ni为灰度级i的出现次数,n为像元总数。 4.熵 熵是图像信息量的表示,反映了图像信息丰富程度,在图像编码和图像质量评价中有重要意义。 H=-∑_(i=0)^(L-1)▒p_i 〖log〗_2 p_i 式中,pi为灰度级i出现的概率。

三、实验内容与步骤

1.熟悉 Matlab 工作环境 (1)打开计算机,启动MATLAB程序, 进入MATLAB的工作界面; 在这里插入图片描述

(2)熟悉MATLAB的菜单及各个工具栏的功能; 菜单栏 在这里插入图片描述

当前文件夹 在这里插入图片描述

命令行窗口 在这里插入图片描述

工作区 在这里插入图片描述

(3)在命令窗口创建矩阵,并对矩阵中的元素进行操作;

a=zeros(5,5) a = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

a(2:4,2:4)=1 a = 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 (4)创建矩阵并对进行矩阵运算;

a=[1 2 3 4 5 6]; b=[6 5 4 3 2 1]; a+b ans = 7 7 7 7 7 7

a.*b ans = 6 10 12 12 10 6

a-b ans = -5 -3 -1 1 3 5

a./b ans = 0.1667 0.4000 0.7500 1.3333 2.5000 6.0000

a*b’ ans = 56

a’*b ans = 6 5 4 3 2 1 12 10 8 6 4 2 18 15 12 9 6 3 24 20 16 12 8 4 30 25 20 15 10 5 36 30 24 18 12 6 (5)绘制以下二维函数的图像,并改变曲线的颜色和线型,分别采用蓝色实线、红色虚线、黑色圆点绘制。 y=2e^(-5x) sin⁡(2πx) 0≤x≤2π

在这里插入图片描述在这里插入图片描述

2.熟练掌握Matlab的帮助命令,学会利用Matlab的帮助信息;并利用帮助命令查看图像处理函数。 help命令:查看函数的帮助

help subplot subplot Create axes in tiled positions. H = subplot(m,n,p), or subplot(mnp), breaks the Figure window into an m-by-n matrix of small axes, selects the p-th axes for the current plot, and returns the axes handle. The axes are counted along the top row of the Figure window, then the second row, etc. For example,

subplot(2,1,1), PLOT(income) subplot(2,1,2), PLOT(outgo)

type命令:查看原代码

type fft2 function f = fft2(x, mrows, ncols) %FFT2 Two-dimensional discrete Fourier Transform. % FFT2(X) returns the two-dimensional Fourier transform of matrix X. % If X is a vector, the result will have the same orientation. % FFT2(X,MROWS,NCOLS) pads matrix X with zeros to size MROWS-by-NCOLS % before transforming. % Class support for input X: % float: double, single % See also FFT, FFTN, FFTSHIFT, FFTW, IFFT, IFFT2, IFFTN. % Copyright 1984-2010 The MathWorks, Inc.

if ismatrix(x) if nargin==1 f = fftn(x); else f = fftn(x,[mrows ncols]); end else if nargin==1 f = fft(fft(x,[],2),[],1); else f = fft(fft(x,ncols,2),mrows,1); end end

lookfor命令:

lookfor plot(x,y,‘k.’) 未找到 plot(x,y,‘k.’)。

3.熟悉Matlab中的文件操作函数 (1)建立一数据文件test.dat,用于存放矩阵A的数据。 在这里插入图片描述

(2)读取文件 test.dat 的内容 在这里插入图片描述

B = 1 8 4 3 7 6 2 9 5 0 cnt = 9 (3)文件定位 在这里插入图片描述

dingwei four = 4 position = 8 eight = 5

4.图像基本操作 熟悉表1提供的matlab图像处理函数,并对图像进行基本操作。 (1)图像读写操作。如 在这里插入图片描述在这里插入图片描述

(2)对图像进行基本操作。如 在这里插入图片描述在这里插入图片描述

5.编程 (1)编写函数文件,计算 在这里插入图片描述在这里插入图片描述在这里插入图片描述

(2)用 Matlab 语言编写统计一幅灰度图像的直方图,并在同一个图形窗 口中显示该图像及其灰度直方图; 在这里插入图片描述在这里插入图片描述

(3)计算一幅灰度图像的熵。

在这里插入图片描述在这里插入图片描述

(4)编程实现图像镜像操作,并显示。 在这里插入图片描述在这里插入图片描述

四、实验心得

1.认识了MATLAB界面,知道基本的编程语句。 2.学会了图像的输入、输出,图像基本处理操作,会求解图像的灰度直方图和熵。 3.使用的语句不同,编程的代码多种多样,不同的语句由一定的相似处,而且都可以得出正确的结果。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3