matlab数字图像处理程序

合集下载

MATLAB图像处理基础教程

MATLAB图像处理基础教程

MATLAB图像处理基础教程第一章:MATLAB图像处理简介MATLAB(Matrix Laboratory)是一种强大的数值计算和数据可视化软件,广泛应用于各个领域,包括图像处理。

图像处理是一门研究如何对数字图像进行分析、增强、重建和压缩的学科。

本教程将引导读者逐步了解MATLAB图像处理的基本概念和技术。

第二章:MATLAB图像的读取与显示在MATLAB中,可以使用imread函数读取不同格式的图像文件,并使用imshow函数显示图像。

此外,还可以使用imfinfo函数获取图像的详细信息,如分辨率、颜色空间和位深度等。

第三章:图像的灰度处理灰度处理是一种常见的图像预处理方法。

通过将彩色图像转换为灰度图像,可以减少图像的数据量,简化图像处理的复杂性。

在MATLAB中,可以使用rgb2gray函数将彩色图像转换为灰度图像,并使用imhist函数查看灰度图像的直方图。

第四章:图像的滤波处理滤波是一种常用的图像处理操作,用于对图像进行平滑、增强或去噪。

MATLAB提供了各种滤波函数,如均值滤波、中值滤波和高斯滤波等。

可以根据具体需求选择合适的滤波方法,并使用imfilter函数进行滤波处理。

第五章:图像的二值化处理图像的二值化是将图像转换为黑白两色的过程,常用于物体检测、识别和分割等应用。

在MATLAB中,可以使用im2bw函数将灰度图像转换为二值图像,并可以调整阈值来控制二值化的效果。

第六章:图像的几何变换几何变换是一种常见的图像处理操作,用于对图像进行旋转、缩放、平移和翻转等操作。

MATLAB提供了imrotate、imresize、imtranslate和flip函数等实现各种几何变换。

通过组合这些函数,可以实现复杂的图像变换。

第七章:图像的特征提取图像的特征提取是图像处理中的重要步骤,用于从图像中提取出具有代表性的信息。

在MATLAB中,可以使用各种特征提取函数,如imgradient、imhistogram和imcontour等。

数字图像处理实验报告完整版

数字图像处理实验报告完整版

数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。

7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。

其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

实验1-Matlab基本与图像处理基本操作

实验1-Matlab基本与图像处理基本操作

图像处理工具箱简介
01
MATLAB图像处理工具箱是MATLAB软件中一个专门用于图像处理的工具箱, 它提供了一套完整的图像处理和分析工具,包括图像读取、显示、变换、滤波 、增强、分割、特征提取等功能。
02
该工具箱支持多种图像格式,如BMP、JPG、PNG、TIFF等,并提供了丰富的 图像处理函数和算法,方便用户进行图像处理和分析。
对未来学习的展望
• 深入学习图像处理算法:在未来的学习中,我们将进一步深入学习图像处理的 各种算法和原理,包括图像分割、特征提取、目标检测等,以便更好地应用在 实际问题中。
• 掌握更多图像处理软件:除了Matlab软件外,我们还将学习掌握其他常用的 图像处理软件,如OpenCV、Python图像处理库等,以便更灵活地处理各种 图像问题。
02
学习图像处理基本 操作
了解图像处理基本概念,学习图 像读取、显示、保存等基本操作。
03
掌握图像处理常用 函数
熟悉MATLAB中图像处理工具箱 的常用函数,如图像调整、滤波、 边缘检测等。
实验环境准备
MATLAB软件
确保计算机已安装MATLAB软件,并熟悉软件基 本操作。
图像处理工具箱
安装并配置MATLAB图像处理工具箱,以便进行 图像处理实验。
• 加强实验数据分析处理能力:在未来的实验中,我们将更加注重实验数据的分 析和处理,学习掌握更多的数据处理方法和技巧,以便更准确地评估实验结果 和性能。
• 拓展应用领域:图像处理技术在实际应用中具有广泛的应用领域,如医学影像 处理、智能交通、安全监控等。在未来的学习中,我们将积极探索这些应用领 域,并尝试将所学的图像处理技术应用到实际问题中。
使用图像处理工具箱中的特 征提取函数和分类器函数, 对图像进行特征提取和分类 识别。例如,可以使用灰度 共生矩阵提取图像纹理特征, 然后使用支持向量机(SVM) 进行分类识别。

数字图像处理课程设计基于Matlab的数字图像处理

数字图像处理课程设计基于Matlab的数字图像处理

数字图像处理课程设计--基于Matlab的数字图像处理数字图像处理课程设计基于Matlab的数字图像处理——图像的运算院系信息技术学院专业班级电气6班学号 201107111282姓名何英娜指导教师章瑞平课程设计时间 2012年11月目录一、摘要 (3)二、图像代数运算1、1图像的加法运算 (4)1、2图像的减法运算 (4)1、3图像的除法运算 (4)1、4绝对差值运算 (7)1、 5 图像的求补运算 (7)3三、图像的几何运算2、1 图像插值 (7)2、2图像的旋转 (8)2、3图像的缩放 (9)2、4图像的投影变换 (10)2、4图像的剪切 (11)四、课程设计总结与体会 (13)五、参考文献 (14)摘要图像运算涵盖程序设计、图像点运算、代数运算、几何运算等多种运算;设计目的和任务:1、熟悉图像点运算、代数运算、几何运算的基本定义和常见方法;2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法3、掌握在MATLAB中进行插值的方法4、运用MATLAB语言进行图像的插值缩放和插值旋转5、学会运用图像的投影变换和图像的剪切46、进一步熟悉了解MATLAB语言的应用,将数字图像处理更好的应用于实际7、通过各类算法加强图像各种属性、一、图像的几何运算何运算图像代数运算是指对两幅或两幅以上输入图像对应的像素逐个进行和差积商运算以产生增强效果的图像。

图像运算是一种比较简单有效的增强处理手段是图像处理中常用方法。

四种图像处理代数运算的数学表达式如下:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y)1图像加法运算一般用于多幅图像求平均效果,以便有效降低具有叠加性的随机噪声,在matlab中imadd用于图像相加,其调用格式为z=imadd(X,Y);程序演示如下:I=imread('rice.png');subplot(2,2,1),imshow(I),title('原图像1'); J=imread('cameraman.tif');subplot(2,2,2),imshow(J),title('原图像52');K=imadd(I,J,'uint16'););subplot(2,2,3),imshow(K,[]),title('相加后图像'2、图像减法运算也称差分运算,是用于检测图像变化及运动物体的方法;用imsubtract函数实现。

如何使用Matlab进行多媒体数据处理和编码

如何使用Matlab进行多媒体数据处理和编码

如何使用Matlab进行多媒体数据处理和编码多媒体数据处理和编码在现代科技领域扮演着至关重要的角色。

随着数字化时代的到来,人们对图像、音频和视频等多媒体数据的处理和编码需求越来越高。

在这个过程中,Matlab作为一种强大的数学建模和计算工具,已经成为许多科研工作者和工程师们的首选。

本文将介绍如何使用Matlab进行多媒体数据的处理和编码。

一、数字图像处理数字图像处理是处理和分析数字图像的一门学科。

Matlab提供了丰富的图像处理工具箱,方便我们进行图像的读取、显示、变换、增强、滤波、分割等各种操作。

1. 图像的读取和显示使用Matlab进行图像处理的第一步是将图像读取进来,并显示出来。

Matlab提供了imread()函数来读取图像文件,并通过imshow()函数将图像显示在屏幕上。

2. 图像的变换在图像处理中,常常需要对图像进行各种变换,例如灰度变换、空间变换和频率变换等。

Matlab提供了灰度变换函数imadjust()、空间变换函数imresize()、imrotate()和频率变换函数fft2()等,方便我们对图像进行各种变换操作。

3. 图像的增强图像增强是提高图像质量的一种方法,常用的增强方法包括直方图均衡化、空间滤波和频域滤波等。

Matlab提供了histeq()函数用于直方图均衡化,imfilter()函数用于空间滤波,freqz()函数用于频域滤波,方便我们对图像进行增强处理。

4. 图像的分割图像分割是将图像划分为若干个互不重叠的区域的过程,可以用于目标识别、边缘检测等应用。

Matlab提供了一系列图像分割函数,例如graythresh()、im2bw()和bwlabel()等,方便我们进行图像的分割操作。

二、数字音频处理数字音频处理是对数字音频信号进行分析、重构和改变的过程。

Matlab提供了丰富的音频处理工具箱,方便我们进行音频的读取、播放、滤波、变调等各种操作。

1. 音频的读取和播放使用Matlab进行音频处理的第一步是将音频文件读取进来,并通过sound()函数将音频播放出来。

数字图像处理matlab代码

数字图像处理matlab代码

一、编写程序完成不同滤波器的图像频域降噪和边缘增强的算法并进行比较,得出结论。

1、不同滤波器的频域降噪1.1 理想低通滤波器(ILPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4)); %将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40; %初始化d0for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 if d<=d0 %点(i,j)在通带内的情况h=1; %通带变换函数else %点(i,j)在阻带内的情况h=0; %阻带变换函数ends(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('ILPF滤波后的图像(d=40)');运行结果:1.2 二阶巴特沃斯低通滤波器(BLPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n=2; %对n赋初值n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40; %初始化d0for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h=1/(1+(d/d0)^(2*n)); %BLPF滤波函数s(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('BLPF滤波后的图像(d=40)');实验结果:1.3 指数型低通滤波器(ELPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h=exp(log(1/sqrt(2))*(d/d0)^2);s(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('ELPF滤波后的图像(d=40)');运行结果:1.4 梯形低通滤波器(TLPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=10;d1=160;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 if (d<=d0)h=1;else if (d0<=d1)h=(d-d1)/(d0-d1);else h=0;endends(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('TLPF滤波后的图像'); %为图像添加标题运行结果:1.5 高斯低通滤波器(GLPF)I1=imread('eight.tif'); %读取图像I2=im2double(I1);I3=imnoise(I2,'gaussian',0.01);I4=imnoise(I3,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I2) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I4) %加入混合躁声后显示图像title('加噪后的图像');s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h=1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数s(i,j)=h*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3); %创建图形图像对象imshow(s); %显示ILPF滤波后的图像title('GLPF滤波后的图像(d=40)');运行结果:1.6 维纳滤波器[B,Cmap]=imread('eight.tif'); %读取MATLAB中的名为eight的图像I1=im2double(B);I2=imnoise(I1,'gaussian',0.01);I3=imnoise(I2,'salt & pepper',0.01);figure,subplot(1,3,1);imshow(I1) %显示灰度图像title('原始图像'); %为图像添加标题subplot(1,3,2);imshow(I3) %加入混合躁声后显示图像title('加噪后的图像');I4=wiener2(I3);subplot(1,3,3);imshow(I4); %显示wiener滤波后的图像title('wiener滤波后的图像');运行结果:结论:理想低通滤波器,虽然有陡峭的截止频率,却不能产生良好的效果,图像由于高频分量的滤除而变得模糊,同时还产生振铃效应。

用matlab数字图像处理四个实验

用matlab数字图像处理四个实验

数字图像处理实验指导书目录实验一MATLAB数字图像处理初步实验二图像的代数运算实验三图像增强-空间滤波实验四图像分割3实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。

2.熟练掌握在MATLAB中如何读取图像。

3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。

4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。

5.图像间如何转化。

二、实验原理及知识点1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。

灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。

例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。

因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。

图像关于x和y坐标以及振幅连续。

要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。

将坐标值数字化成为取样;将振幅数字化成为量化。

采样和量化的过程如图1所示。

因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。

作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。

图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类:➢亮度图像(Intensity images)➢二值图像(Binary images)➢索引图像(Indexed images)➢RGB图像(RGB images)(1) 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。

若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。

若图像是double类,则像素取值就是浮点数。

(完整版)数字图像处理MATLAB程序【完整版】

(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。

三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。

(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。

实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

基于MATLAB的数字图像处理的设计与实现

基于MATLAB的数字图像处理的设计与实现

基于MATLAB的数字图像处理的设计与实现摘要数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人们服务。

数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。

目的:改善医学图像质量,使图像得到增强。

方法:利用Matlab工具箱函数,采用灰度直方图均衡化和高通滤波的方法对一幅X线图像进行增强处理。

结果:用直方图均衡化的算法,将原始图像密集的灰度分布变得比较稀疏,处理后的图像视觉效果得以改善。

高通滤波对于局部细节增强显著,高通滤波后使不易观察到的细节变得清晰。

结论:使用Matlab工具箱大大简化了编程工作,为医学图像处理提供了一种技术平台。

经过直方图均衡化和高通滤波处理后的医学图像,视觉效果得到改善。

关键词:MATLAB;直方图均衡化;高通滤波;图像增强AbstractDigital image processing is an emerging technology, with the development of computer hardware, real—time digital image processing has become possible due to digital image processing algorithms to appear,making it faster and faster processing speed,better for people services .Digital image processing is used by some algorithms computer graphics image pro cessing technology. Objective:To improve the quality of medical image by enhancing the details。

数字图像处理matlab课程设计

数字图像处理matlab课程设计

数字图像处理matlab课程设计一、教学目标本课程的教学目标是使学生掌握数字图像处理的基本理论和方法,学会使用MATLAB软件进行图像处理和分析。

通过本课程的学习,学生应达到以下具体目标:1.理解数字图像处理的基本概念、原理和算法。

2.熟悉MATLAB图像处理工具箱的使用。

3.能够运用数字图像处理的基本算法解决实际问题。

4.能够使用MATLAB进行图像处理和分析,撰写相关的程序代码。

情感态度价值观目标:1.培养学生的创新意识和团队协作精神。

2.培养学生对数字图像处理技术的兴趣,提高其综合素质。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.数字图像处理基本概念:图像处理的基本概念、图像数字化、图像表示和图像变换。

2.图像增强和复原:图像增强、图像去噪、图像复原。

3.图像分割和描述:图像分割、图像特征提取和描述。

4.图像形态学:形态学基本运算、形态学滤波、形态学重建。

5.MATLAB图像处理工具箱的使用:MATLAB图像处理工具箱的基本功能、常用图像处理函数。

6.图像处理实例分析:结合实际案例,分析数字图像处理技术的应用。

三、教学方法为了实现课程目标,本课程将采用以下教学方法:1.讲授法:通过讲解图像处理的基本概念、原理和算法,使学生掌握图像处理的基本知识。

2.案例分析法:通过分析实际案例,使学生了解数字图像处理技术在实际中的应用。

3.实验法:通过上机实验,使学生熟练掌握MATLAB图像处理工具箱的使用,提高学生的实际操作能力。

4.讨论法:学生进行课堂讨论,激发学生的思维,培养学生的创新意识和团队协作精神。

四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《数字图像处理(MATLAB版)》。

2.参考书:相关领域的经典教材和论文。

3.多媒体资料:教学PPT、视频教程等。

4.实验设备:计算机、MATLAB软件、图像处理相关硬件设备。

五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面、客观、公正地评价学生的学习成果。

如何进行MATLAB图像处理

如何进行MATLAB图像处理

如何进行MATLAB图像处理一、引言图像处理是计算机视觉和图像分析领域中的重要任务之一。

而MATLAB是一种强大的数学计算软件,也被广泛应用于图像处理。

本文将介绍如何使用MATLAB进行图像处理,并探讨一些常见的图像处理技术。

二、图像处理基础在开始使用MATLAB进行图像处理之前,我们需要了解一些基础知识。

一个图像通常由像素组成,每个像素都有一个灰度值或者RGB(红绿蓝)三个通道的值。

图像的处理可以分为两个主要方面:空间域处理和频域处理。

1. 空间域处理空间域图像处理是指直接对图像的像素进行操作,常见的处理方法包括亮度调整、对比度增强和图像滤波等。

MATLAB提供了一系列函数和工具箱来进行这些处理。

例如,要调整图像的亮度,可以使用imadjust函数。

该函数可以通过调整输入图像的灰度值范围,实现亮度的增强或者降低。

下面是一个简单的例子:```matlabI = imread('image.jpg'); % 读取图像J = imadjust(I,[0.2 0.8],[0 1]); % 调整亮度范围imshow(J); % 显示图像```2. 频域处理频域图像处理是指将图像从空间域转换到频域进行处理,常见的处理方法包括傅里叶变换和滤波等。

MATLAB提供了fft和ifft等函数来进行频域处理。

例如,要对图像进行傅里叶变换,可以使用fft2函数。

该函数将图像转换为频率域表示,可以进一步进行滤波等处理。

下面是一个简单的例子:```matlabI = imread('image.jpg'); % 读取图像F = fft2(I); % 傅里叶变换F = fftshift(F); % 频率域中心化imshow(log(1 + abs(F)),[]); % 显示频率域图像```三、图像处理技术了解了图像处理的基础知识后,我们可以探索一些常见的图像处理技术。

以下将介绍几个常用的技术,并给出相应的MATLAB代码示例。

《数字图像处理及MATLAB实现》图像增强与平滑实验

《数字图像处理及MATLAB实现》图像增强与平滑实验

《数字图像处理及MATLAB实现》图像增强与平滑实验一.实验目的及要求1、熟悉并掌握MA TLAB 图像处理工具箱的使用;2、理解并掌握常用的图像的增强技术。

二、实验设备MATLAB 6.5 以上版本、WIN XP 或WIN2000 计算机三、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。

熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

(可将每段程序保存为一个.m文件)1.直方图均衡化clear all; close all % Clear the MATLAB workspace of any variables% and close open figure windows.I = imread('pout.tif'); % Reads the sample images ‘pout.tif’, and stores it inimshow(I) % an array named I.display the imagetext(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I) % Create a histogram of the image and display it in% a new figure window.[I2,T] = histeq(I); % Histogram equalization.figure, imshow(I2) % Display the new equalized image, I2, in a new figure window.text(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I2) % Create a histogram of the equalized image I2.figure,plot((0:255)/255,T); % plot the transformation curve.imwrite (I2, 'pout2.png'); % Write the newly adjusted image I2 to a disk file named% ‘pout2.png’.imfinfo('pout2.png') % Check the contents of the newly written file2.直接灰度变换clear all; close allI = imread('cameraman.tif'); 注意:imadjust()功能:调整图像灰度值或颜色映像表,也可实现伽马校正。

(整理)数字图像处理MATLAB指令

(整理)数字图像处理MATLAB指令

其他常用的图像转换函数有:gray2ind函数,将灰度图像转换成索引图像。

Im2bw函数,将其它图像转化为二值图像。

Ind2gray函数,将索引图像转换成灰度图像。

Rgb2gray函数,将彩色图像转换成灰度图像。

1.利用imread( )函数读取一幅图像,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;函数执行语句A = imread('saturn.png');whosName Size Bytes Class AttributesA 1500x1200x3 5400000 uint8imshow(A)4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;imfinfo('saturn.png')5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg 文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

imwrite(A,'xingxing.jpg','quality',25)B = imread('xingxing.jpg');6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。

imwrite(A , 'xingxing.bmp')C = imread('xingxing.bmp');7.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

F = imread('circbw.tif');im2bw(F)imshow(F)实验二图像直方图与灰度变换下面给出灰度变化的MATLAB程序f=imread('medicine_pic.jpg');g=imhist(f,256); %显示其直方图g1=imadjust(f,[0 1],[1 0]);%灰度转换,实现明暗转换(负片图像) figure,imshow(g1)g2=imadjust(f,[0.5 0.75],[0 1]);%将0.5到0.75的灰度级扩展到范围[0 1] figure,imshow(g2)g=imread('point.jpg');h=log(1+double(g));%对输入图像对数映射变换h=mat2gray(h); %将矩阵h转换为灰度图片h=im2uint8(h); %将灰度图转换为8位图figure,imshow(h)下面给出直方图均衡化增强图像对比度的MATLAB程序:I=imread(‘pollen.jpg); % 读入原图像J=histeq(I); %对原图像进行直方图均衡化处理Imshow(I); %显示原图像Title(‘原图像’); %给原图像加标题名Figure;imshow(J); %显示直方图均衡化后的图像Title(‘直方图均衡化后的图像’) ; %给直方图均衡化后的图像加标题名Figure; subplot(1,2,1) ;%对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第1幅图Imhist(I,64); %将原图像直方图显示为64级灰度Title(‘原图像直方图’) ; %给原图像直方图加标题名Subplot(1,2,2); %作第2幅子图Imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度Title(‘均衡变换后的直方图’) ; %给均衡化后图像直方图加标题名1、利用自己编写的灰度直方图计算程序计算rice.tif图像的直方图,并与系统自带的计算程序进行对比。

数字图像处理实验指导书(带源程序)

数字图像处理实验指导书(带源程序)

实验一Matlab图像处理工具箱的初步练习一. 实验目的1. 掌握有关数字图像处理的基本概念;2. 熟悉Matlab图像处理工具箱;3. 熟悉使用Matlab进行数字图像的读出和显示;4. 熟悉运用Matlab指令进行图像旋转和缩放变换。

二. 练习1. 文件的读入与显示(1) 运行Matlab。

(2) MATLAB窗口构成:在缺省的情况下,由三个窗口组成。

命令窗口(command window)、命令历史(command history)、工作空间(workspace)。

注意:缺省窗口的设置步骤为:MATLAB菜单/view选项/Desktop layout/default。

(3) 调入一个文件:i=imread('pout.tif');%注意:前面的“%”是用于注释的,不会被执行,只是说明这个语句的作用。

此时的i出现在什么窗口?是什么类型的变量?大小是多少?(4) 显示这幅图:imshow(i);(5) 将变量i转置成j,即j=i';显示j即imshow(j);%在胸前左侧花纹怎么会跑到右边的呢?举一个例子加以验证:设a=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15];b=a’;此时的b与a有什么区别?(6) 写入到一个新的图像文件'abc.tif'中,即imwrite(j,'abc.tif')。

(7) 清除变量命令:clear执行这个命令后,workspace窗口中的变量有没有?怎么验证?(8) 清除用户开设的窗口命令:close all(9) 调入图像文件'abc.tif'并显示。

问题:(1) 操作符“’”是图像的转置的意思,转置两次后,是否回到原图像?(2) 命令后的符号“;”所起的作用是什么?(3) 命令是否可以大写母?2. 灰度图像分别选择不同的灰度级(如2、4、16、64、128个)来显示同一幅图像(如testpat1.tif)。

数字图像处理实验(MATLAB版)

数字图像处理实验(MATLAB版)

数字图像处理实验(MATLAB版)数字图像处理(MATLAB版)实验指导书(试用版)湖北师范学院教育信息与技术学院2009年4月试行目录实验一、数字图像获取和格式转换 2 实验二、图像亮度变换和空间滤波 6 实验三、频域处理7 实验四、图像复原9 实验五、彩色图像处理101实验六、图像压缩11 实验七、图像分割13 教材与参考文献142《数字图像处理》实验指导书实验一、数字图像获取和格式转换一、实验目的1掌握使用扫描仪、数码相机、数码摄像级机、电脑摄像头等数字化设备以及计算机获取数字图像的方法;2修改图像的存储格式;并比较不同压缩格式图像的数据量的大小。

二、实验原理数字图像获取设备的主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等。

各类设备都标明了它的光学分辨率和最大分辨率。

分辨率的单位是dpi,dpi是英文Dot Per Inch的缩写,意思是每英寸的像素点数。

扫描仪扫描图像的步骤是:首先将欲扫描的原稿正面朝下铺在扫描仪的玻璃板上,原稿可以是文字稿件或者图纸照片;然后启3动扫描仪驱动程序后,安装在扫描仪内部的可移动光源开始扫描原稿。

为了均匀照亮稿件,扫描仪光源为长条形,并沿y方向扫过整个原稿;照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,又经过一组反光镜,由光学透镜聚焦并进入分光镜,经过棱镜和红绿蓝三色滤色镜得到的RGB三条彩色光带分别照到各自的CCD 上,CCD将RGB光带转变为模拟电子信号,此信号又被A/D变换器转变为数字电子信号。

至此,反映原稿图像的光信号转变为计算机能够接受的二进制数字电子信号,最后通过串行或者并行等接口送至计算机。

扫描仪每扫一行就得到原稿x方向一行的图像信息,随着沿y方向的移动,在计算机内部逐步形成原稿的全图。

扫描仪工作原理见图1.1。

4图1.1扫描仪的工作原理在扫描仪的工作过程中,有两个元件起到了关键的作用。

一个是CCD,它将光信号转换成为电信号;另一个是A/D变换器,它将模拟电信号变为数字电信号。

数字图像处理(MATLAB版)(第2版)

数字图像处理(MATLAB版)(第2版)

目录分析
1.1数字图像处理的 发展
1.2数字图像的相关 概念
1.3数字图像处理的 内容
1.4数字图像处理的 方法
1
1.5图像数字 化技术
2
1.6图像的统 计特征
3
1.7数字图像 的应用
4
1.8 MATLAB 领略
5 1.9 MATLAB
图像处理应用 实例
小结
习题
1
2.1图像类型 的转换
2
2.2线性系统
数字图像处理(MATLAB版)(第2版)
读书笔记模板
01 思维导图
03 目录分析 05 读书笔记
目录
02 内容摘要 04 作者介绍 06 精彩摘录
思维导图
本书关键字分析思维导图
几何变换
技术
图像
基础
图像
特征
数字图像处理

数字图像
内容 小结
数字图像
第版
习题
边界
第章
图像增强
滤波
运算
内容摘要
本书主要内容包括:全书共10章,分别介绍了数字图像的相关论述、数字图像的处理基础、图像编码、图像 复原、图像几何变换、图像频域变换、图像几何变换、小波变换、图像增强、图像分割与边缘检测及图像特征描 述等内容。
10.8形态学重建 10.9特征度量
小结 10.10查表操作
习题
作者介绍
这是《数字图像处理(MATLAB版)(第2版)》的读书笔记模板,暂无该书作者的介绍。
读书笔记
这是《数字图像处理(MATLAB版)(第2版)》的读书笔记模板,可以替换为自己的心得。
精彩摘录
这是《数字图像处理(MATLAB版)(第2版)》的读书笔记模板,可以替换为自己的精彩内容摘录。

数字图像处理教程(matlab版)

数字图像处理教程(matlab版)
imwrite(A,FILENAME,FMT)
FILENAME参数指定文件名。FMT为保存文件采用的格式。 imwrite(I6,'nirdilatedisk2TTC10373.bmp');
/1、图像的读取和显示
三、图像的显示
imshow(I,[low high])
I为要显示的图像矩阵。[low high]为指定显示灰度图像的灰度范围。 高于high的像素被显示成白色;低于low的像素被显示成黑色;介于 High和low之间的像素被按比例拉伸后显示为各种等级的灰色。 figure;imshow(I6);title('The Main Pass Part of TTC10373');
t c logk s
c为尺度比例常数,s为源灰度值,t为变换后的目标灰 度值。k为常数。灰度的对数变换可以增强一幅图像 中较暗部分的细节,可用来扩展被压缩的高值图像中 的较暗像素。广泛应用于频谱图像的显示中。
Warning:log函数会对输入图像矩阵s中的每个元素进行
操作,但仅能处理double类型的矩阵。而从图像文件中得到的 图像矩阵大多是uint8类型的,故需先进行im2double数据类型 转换。
原 图 像
滤 波 后 图

/4、空间域图像增强 三、滤波器设计
h=fspecial(type,parameters)
parameters为可选项,是和所选定的滤波器类型type相关的 配置参数,如尺寸和标准差等。
type为滤波器的类型。其合法值如下:
合法取值 ‘average’
‘disk’ ‘gaussian’ ‘laplacian’
DA

DMax A0
DA

第11讲 Matlab数字图像处理

第11讲 Matlab数字图像处理

表 11.1 函数 imfinfo 返回的结构数组基本内容
结构数组成员名 Filename FileMoDate FileSize Format FormatVersion Width Height BitDepth ColorType 所代表函数 文件名称 文件最后修改日期和时间 文件大小(单位是字节) 文件格式或扩展名(tif、jpf 和 png 等) 文件格式版本号 图像文件的宽度,单位为像素 图像文件的高度,单位为像素 图像文件中每一个像素所占位宽(真彩色图像每个像素占 24 位) 图像类型(grayscale-灰度图像,truecolor-RGB 图像,indexed-索引图像)
表111函数imfinfo返回的结构数组基本内容结构数组成员名所代表函数filename文件名称filemodate文件最后修改日期和时间filesize文件大小单位是字节format文件格式或扩展名tifjpf和pngformatversion文件格式版本号width图像文件的宽度单位为像素height图像文件的高度单位为像素bitdepth图像文件中每一个像素所占位宽真彩色图像每个像素占24colortype图像类型grayscale灰度图像truecolorrgb图像indexed索引图像函数imtool利用函数imtool可以将图像在图像工具浏览器中:该函数是利用颜色映射表 map 的逆算法,将 RGB 图像转换为索引 图像。 例11.3 将 RGB 图像转换为索引图像。 RGB = imread('ngc6543a.jpg'); %Matlab 工具箱中的图像文件 subplot(131), imagesc(RGB), zoom(4) %图像放大 4 倍 [IND,map]=rgb2ind(RGB,32); subplot(132), image(IND), colormap(map), zoom(4) subplot(133), imshow(RGB) %不带坐标轴刻度的显示,图像不放大 例 11.4 将 RGB 图像转换为索引图像。 clc, clear a=imread('football.jpg'); %Matlab 工具箱中的图像文件 [x1,m1]=rgb2ind(a,128); %将 RGB 图像转换成索引图像,颜色种数 N 至多 128 种 [x2,m2]=rgb2ind(a,0.1); %将 RGB 图像转换成索引图像,颜色种数 N 至多 11^3 种 m3=colorcube(128); %创建一个指定颜色数目的 RGB 颜色映射表 x3=rgb2ind(a,m3); subplot(131), imshow(x1,m1) %显示用最小方差法转换后的索引图像 subplot(132), imshow(x2,m2) %显示用均匀量化法转换后的索引图像 subplot(133), imshow(x3,m3) %显示用颜色近似法转换后的索引图像 3. 索引图像转换为 RGB 图像 在 Matlab 中,利用函数 ind2rgb 函数可以将索引图像转换为 RGB 图像。其调用格式为 RGB=ind2rgb(X,map):其中[X,map]指向索引图像,RGB 指向转换后的真彩色图像。 例 11.5 将索引图像转换为真彩色图像。 clc, clear [x,a]=imread('kids.tif'); %Matlab 工具箱中的图像文件 b=ind2rgb(x,a); %将索引图像转换为真彩色图像 subplot(121), imshow(x,a), subplot(122), imshow(b) 11.2.2 Matlab 图像工具箱中的几个函数介绍 1.imread 和 imwrite imread 函数是从图像文件读图像,它的一般调用格式为 A=imread(filename) 返回值 A 为矩阵,当图像是黑白和灰度图像时,A 为二维矩阵,当图像是彩色图像时,A 是三维矩阵,即 A 为 3 个二维矩阵,分别为 R、G、B 的像素值。 imwrite 函数是把图像写到图像文件中,它的一般调用格式为 imwrite(A,filename) 把图像 A(二维矩阵或三维矩阵)写到图像文件 filename 中。 例 11.6 读入一个 bmp 图像,然后再把图像保存成 jpg 格式。 clc, clear a=imread('data6.bmp'); %非工具箱图像文件 imwrite(a,'data7.jpg') %把图像保存成 jpg 格式 subplot(121), imshow(a) %显示原图像 subplot(122), imshow('data7.jpg') %显示 jpg 图像 2. 文件信息读取函数 imfinfo 在 Matlab 中,对图像进行操作和处理时,经常需要知道图像文件的文件名、文件格式、 图像大小、图像类型和数据类型等信息,可以直接调用 Matlab 函数 imfinfo 来读取图像文件 的信息。其调用格式如下。 info=imfinfo(filename):该函数读取文件 filename 的信息。其中,filename 指的是图像 文件的“文件名” (包括后缀名) 。info 是一个结构数组。不同格式的文件最终得到的 info 所包含的结构成员不同,但基本都包含前 9 个结构成员,具体如表 11.1 所示。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字图像处理程序实验一1、图像的缩放:A=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(311);imshow(A);title('原图')B=imresize(A,3);subplot(312);imshow(B);title('三倍图');C=imresize(A,0.5);subplot(313);imshow(C);title('二分之一图');2、图像的镜像:A1=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); figuresubplot(2,2,1),imshow(uint8(A1));H=size(A1);title('原像')A2(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,1:H(2),1:H(3));%垂直镜像subplot(2,2,2),imshow(uint8(A2));title('垂直镜像')A3(1:H(1),1:H(2),1:H(3))=A1(1:H(1),H(2):-1:1,1:H(3));%水平镜像subplot(2,2,3),imshow(uint8(A3));title('水平镜像')A4(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,H(2):-1:1,1:H(3));%对角镜像subplot(2,2,4),imshow(uint8(A4));title('对角镜像')3、图像的旋转:I = imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(141);imshow(I);title('原图');theta1 = 45;%旋转的角度为45度K1 = imrotate(I,theta1); % 对图像进行旋转subplot(142);title('旋转45度后的图像');theta2 = 138;%旋转的角度为138度K2 = imrotate(I,theta2); % 对图像进行旋转subplot(143);imshow(K2);title('旋转138度后的图像');theta3 = 60;%旋转的角度为60度K3 = imrotate(I,theta3); % 对图像进行旋转subplot(144);imshow(K3);title('旋转60度后的图像');4、图像的剪切:A1=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');A2=imcrop(A1,[700 500 1900 1100]);figuresubplot(1,2,1),imshow(A1);title('原像')subplot(1,2,2),imshow(A2);title('剪切后像')5、图像的平移:A7=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');subplot(121);imshow(A7);title('原始图像');A=imcrop(A7,[700 500 1900 1100]);A1=double(A);A1_move=zeros(size(A1));H=size(A1);A1_x=500;A1_y=500;A1_movesult(A1_x+1:H(1),A1_y+1:H(2),1:H(3))=A(1:H(1)-A1_x,1:H(2)-A1_y,1:H(3)); subplot(122);imshow(uint8(A1_movesult));title('平移后的图像');6、图像的乘法:I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');subplot(221);imshow(I);title('原始图像');I2=immultiply(I1,I1);subplot(222);imshow(I2);title('图像自乘效果');I3=immultiply(I,5);subplot(223);imshow(I3);title('图像与常数相乘');7、图像的除法:clear all;I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(221);imshow(I);title('原始图像');background=imopen(I,strel('disk',15));I1=imdivide(I,background);subplot(222);imshow(I1);title('图像与背景相除');I2=imdivide(I,2);subplot(223);imshow(I2);title('图像与常数相除');8、图像的加法:clear all;I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); I1=imcrop(I,[700 500 1900 1100]);subplot(131);imshow(I1);title('原始图像剪切后的图像');K=imadd(I1,I1);subplot(132);imshow(K);title('剪切后图像自相加后的图');F=imadd(I,45);subplot(133);imshow(F);title('原始图像与常数相加后的图形');实验二1、图像的灰度与二值变换:A=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');B=rgb2gray(A);%彩色图像转换成灰度图像subplot(131);imshow(A);title('原图');subplot(132);imshow(B);title('原图灰度图像');BW=im2bw(B,0.2);%0.2是阈值用来控制灰度等级的,设置成不同的值能够使二值图的效果进行不同的变化subplot(133);imshow(BW);title('二值图像');2、图像的灰度线性变换:I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');subplot(141);imshow(I);title('原始图像');axis([500,3000,500,2400]);axis on; %显示坐标系I1=rgb2gray(I);subplot(142),imshow(I1);title('灰度图像');axis([500,3000,500,2400]);axis on; %显示坐标系J=imadjust(I1,[0.1 0.5],[0 1]); %局部拉伸,把[0.1 0.5]内的灰度拉伸为[0 1]subplot(143),imshow(J);title('线性变换图像[0.1 0.5]');axis([500,3000,500,2400]);grid on; %显示网格线axis on; %显示坐标系K=imadjust(I1,[0.3 0.6],[0 1]); %局部拉伸,把[0.3 0.6]内的灰度拉伸为[0 1]subplot(144),imshow(K);title('线性变换图像[0.3 0.6]');axis([500,3000,500,2400]);grid on; %显示网格线axis on; %显示坐标系3、图像线性反转:I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');J=double(I);%将原图中的值返回成双精度J=-J+255; %图像反转线性变换H=uint8(J);%将J中的图像转换成用8位显示的无符号整数类型subplot(121);imshow(I);title('对原图取双精度后的图像');subplot(122);imshow(H);title('线性反转后的图像');4、图像的非线性变换:I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');I1=rgb2gray(I);subplot(121);imshow(I1);title(' 灰度图像');axis on; %显示坐标J=double(I1);J=40*(log(J+1));%对图像进行自然对数变换H=uint8(J);subplot(122); imshow(H);title(' 对数变换图像');axis on; %显示坐标系5、图像的直方图均衡化:I = imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');I1=rgb2gray(I);figuresubplot(141);imshow(I1)subplot(142);imhist(I1)title('均衡化之前的直方图');I2=histeq(I1);%使用直方图均衡化增强对比度subplot(143);imshow(I2)subplot(144);imhist(I2)title('均衡化之后的直方图');6、线性均值滤波I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');subplot(231)imshow(I)title('原始图像')I=rgb2gray(I);I1=imnoise(I,'salt & pepper',0.02);%为灰度图像增加盐椒噪声,其噪声的密度为0.02 subplot(232)imshow(I1)title(' 添加椒盐噪声的灰度图像')k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波,这是默认的模板k2=filter2(fspecial('average',5),I1)/255;%进行5*5模板平滑滤波k3=filter2(fspecial('average',7),I1)/255;%进行7*7模板平滑滤波k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波subplot(233);imshow(k1);title('3*3 模板平滑滤波');subplot(234);imshow(k2);title('5*5 模板平滑滤波');subplot(235);imshow(k3);title('7*7 模板平滑滤波');subplot(236);imshow(k4);title('9*9 模板平滑滤波');7、非线性中值滤波I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');I1=rgb2gray(I);J=imnoise(I1,'salt & pepper',0.02);subplot(231),imshow(I1);title('灰度图像');subplot(232),imshow(J);title('添加椒盐噪声的灰度图像');k1=medfilt2(J); %进行3*3模板中值滤波k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波k4=medfilt2(J,[9,9]); %进行9*9模板中值滤波subplot(233);imshow(k1);title('3*3模板中值滤波');subplot(234);imshow(k2);title('5*5模板中值滤波');subplot(235);imshow(k3);title('7*7模板中值滤波');subplot(236);imshow(k4);title('9*9 模板中值滤波');8、图像的锐化:I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');subplot(2,2,1);imshow(I);title('原始图像');axis([500,3000,500,3000]);axis on; %显示坐标系I1=im2bw(I,0.1);subplot(2,2,2),imshow(I1);title('二值图像');axis([500,3000,500,3000]);axis on;%显示坐标系H=fspecial('sobel'); %选择sobel算子J=filter2(H,I1); %卷积运算subplot(2,2,3),imshow(J);title('sobel算子锐化图像');axis on;%显示坐标系h=[0 1 0,1 -4 1,0 1 0]; %拉普拉斯算子h1=double(h);J1=double(I1);J2=conv2(J1,h1,'same'); %卷积运算,返回的是一个与J1具有相同尺寸的阵列subplot(2,2,4),imshow(J2);title('拉普拉斯算子锐化图像');axis on;%显示坐标系实验三1、梯度算子边缘检测I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(151);imshow(I)title('原始图像');axis([500,3000,500,3000]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I,0.1);subplot(152);imshow(I1);title('二值图像');axis([500,3000,500,3000]);grid on; %显示网格线axis on; %显示坐标系I2=edge(I1,'roberts');subplot(153);imshow(I2);title('roberts算子分割结果');axis([500,3000,500,2500]);grid on; %显示网格线axis on; %显示坐标系I3=edge(I1,'sobel');subplot(154);imshow(I3);title('sobel算子分割结果');axis([500,3000,500,2500]);grid on; %显示网格线axis on; %显示坐标系I4=edge(I1,'Prewitt');subplot(155);imshow(I4);title('Prewitt算子分割结果');axis([500,3000,500,2500]);grid on; %显示网格线axis on; %显示坐标系2、log算子边缘检测I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(2,2,1);imshow(I);title('原始图像');I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title('灰度图像');I2=edge(I1,'log');subplot(2,2,3);imshow(I2);title('log算子边缘检测结果');3、canny算子边缘检测I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(131);imshow(I);title('原始图像')I1=rgb2gray(I);subplot(132);imshow(I1);title('灰度图像');I2=edge(I1,'canny');subplot(133);imshow(I2);title('canny算子边缘检测结果');4、hough变换I= imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); I1=rgb2gray(I);subplot(2,2,1);imshow(I1);title('灰度图像');axis([500,3000,500,2400]);grid on;axis on;BW=edge(I1,'prewitt');subplot(2,2,2);imshow(BW);title('prewitt算子边缘检测后图像');axis([500,3000,500,2400]);grid on;axis on;[H,T,R]=hough(BW);subplot(2,2,3);imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit'); title('霍夫变换图');xlabel('\theta'),ylabel('\rho');axis on , axis normal, hold on;P=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));x=T(P(:,2));y=R(P(:,1));plot(x,y,'s','color','white');lines=houghlines(BW,T,R,P,'FillGap',5,'MinLength',7); subplot(2,2,4);,imshow(I1);title('霍夫变换图像检测');axis([500,3000,500,2400]);grid on;axis on;hold on;max_len=0;for k=1:length(lines)xy=[lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');len=norm(lines(k).point1-lines(k).point2);if(len>max_len)max_len=len;xy_long=xy;endendplot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');5、直方图阈值I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');I1=rgb2gray(I);figure;subplot(221);imshow(I1);title(' 灰度图像')axis([500,3000,500,2500]);grid on; %显示网格线axis on; %显示坐标系[m,n]=size(I1); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255GP(k+1)=length(find(I1==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置endsubplot(222),bar(0:255,GP,'g')%绘制直方图title('灰度直方图')xlabel('灰度值')ylabel(' 出现概率')I2=im2bw(I,50/255);subplot(223),imshow(I2);title('阈值50的分割图像')axis([500,3000,500,2500]);grid on; %显示网格线axis on; %显示坐标系I3=im2bw(I,100/255); %subplot(224),imshow(I3);title('阈值100的分割图像')axis([500,3000,500,2500]);grid on; %显示网格线axis on; %显示坐标系7、ostu法阈值分割clcclear allI=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');subplot(1,2,1),imshow(I);title('原始图像')axis([500,3000,500,3000]);grid on; %显示网格线axis on; %显示坐标系level=graythresh(I);%确定灰度阈值BW=im2bw(I,level);subplot(1,2,2),imshow(BW);title('Otsu 法阈值分割图像')axis([500,3000,500,3000]);grid on; %显示网格线axis on; %显示坐标系实验四1、快速傅里叶变换与反变换I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');A=rgb2gray(I);%原图转换成灰度图像x1=fft2(A);%对灰度图像进行快速傅里叶变换x2=fftshift(x1);x3=ifft(x1)/10;%fft逆变换figuresubplot(2,2,1);imshow(A)title('原图');subplot(2,2,2);imshow(x1)title('频谱图');subplot(2,2,3);imshow(log(abs(x2)+1),[0 10]);title('直流分量移至频谱图中心');subplot(2,2,4)imshow(x3,[0 10])title('傅里叶反变换');2、DCT变换I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');I1=rgb2gray(I);I2=imcrop(I1,[700 500 1900 1100]);%由于原始图片比较大,在进行dct变换时出现了超出内在的情况,所以对图片进行了适当的剪切J=dct2(I2);%返回图像I2的二维离散余弦变换值,其大小与I2相同,且各元素为离散余弦变换的系数B(k1.k2)subplot(121);imshow(I);title('原始图像');subplot(122);imshow(log(abs(J)),[]);colormap(jet(64));%反映了当前图像中的色图情况colorbar%colorbar函数显示当前colormap在当前图以及调整当前轴,使其适应colorbartitle('DCT变换');3、骨架提取I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg');subplot(141),imshow(I);title('原始图像');axis([500,3000,500,2400]);axis on;I1=im2bw(I,0.1);subplot(142),imshow(I1);title('二值图像');axis([500,3000,500,2400]);axis on;I2=bwmorph(I1,'skel',1);%对二值图像进行形态学操作,其中skel是骨架提取的参数,而1是进行骨架提取的次数可以大到无穷subplot(143),imshow(I2);title('1次骨架提取');axis([500,3000,500,2400]);axis on;I3=bwmorph(I1,'skel',3);subplot(144),imshow(I3);title('3次骨架提取');axis([500,3000,500,2400]);axis on;4、边界提取I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); %载入图像subplot(1,3,1),imshow(I);title('原始图像');axis([500,3000,500,2400]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I,0.1);subplot(1,3,2),imshow(I1);title('二值化图像');axis([500,3000,500,2400]);axis on; %显示坐标系I2=bwperim(I1);%获取二值图像的区域的周长subplot(1,3,3),imshow(I2);title('边界周长的二值图像');axis([500,3000,500,2400]);grid on;axis on;5、开、闭运算I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); %载入图像subplot(3,2,1),imshow(I);title('原始图像');axis([500,3000,500,2400]);axis on; %显示坐标系I1=rgb2gray(I);subplot(3,2,2),imshow(I1);title('灰度图像');axis([500,3000,500,2400]);axis on; %显示坐标系se=strel('disk',5);%创建一个半径为5的圆形平面结构元素I2=imopen(I1,se); %开启操作I3=imclose(I1,se); %闭合操作subplot(3,2,3),imshow(I2);title('开启运算后图像');axis([500,3000,050,2400]);axis on;%显示坐标系subplot(3,2,4),imshow(I3);title('闭合运算后图像');axis([500,3000,500,2400]);axis on; %显示坐标系se=strel('octagon',18);%生成一个从中心点到边界跨度为18的八边形(括号中的参数必须是3的整数倍)I4=imopen(I1,se);I5=imclose(I4,se);subplot(3,2,5),imshow(I5); %开—闭运算图像title('开—闭运算图像');axis([500,3000,500,2400]);axis on; %显示坐标系I6=imclose(I1,se);I7=imopen(I6,se);subplot(3,2,6),imshow(I7); %闭—开运算图像title('闭—开运算图像');axis([500,3000,500,2400]);6、腐蚀、膨胀操作I=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); %载入图像I1=rgb2gray(I);subplot(1,3,1);imshow(I1);title('灰度图像');axis([500,3000,500,2400]);grid on; %显示网格线axis on; %显示坐标系se=strel('disk',15); %生成半径为15的圆形结构元素I2=imerode(I1,se); %用生成的结构元素对图像进行腐蚀subplot(1,3,2);imshow(I2);title('腐蚀后图像');axis([500,3000,500,2400]);grid on; %显示网格线axis on;%显示坐标系se1=strel('square',6); %生成边长为6方形结构元素I3=imdilate(I1,se1); %用生成的结构元素对图像进行膨胀subplot(1,3,3);imshow(I3);title(' 膨胀后图像');axis([500,3000,500,2400]);grid on; %显示网格线axis on; %显示坐标系。

相关文档
最新文档