基于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的图像亮度对比度处理

基于Matlab的图像亮度对比度处理

亮度对比度批处理测试1●测试: PGY_png●处理前需要进行格式转换,转为png格式1 软件平台Matlab R2017b将代码粘贴到编辑器里面(Matlab code(1))Figure 1代码编辑器替换图像路径Figure 2替换路径2 运行程序按 ctrl+Enter,运行程序,Figure窗口显示处理好的图像,如下图。

Figure 3显示批处理后图像(a)处理前(b)处理后Figure 4 处理前后对比1(a )处理前 (b )处理后Figure 5处理前后对比2 测试2Matlab code%(1)%%pic pathC:\Users\lx123\Desktop\Matlab学习\水平集_LGD_测试_2017_10_30\input_picclc;% file_path = 'E:\jlf\auto project\A180130D_BH\A180130D_BH_png\批量1\';% 图像文件夹路径,自行定义file_path = 'E:\jlf\auto project\A180131D_PGY\A180131D_PGY_png\';% 图像文件夹路径,自行定义img_path_list = dir(strcat(file_path,'*.png'));%获取该文件夹中所有png格式的图像img_num = length(img_path_list);%获取图像总数量for k = 1:img_num %逐一读取图像image_name = img_path_list(k).name;% 图像名H = imread(strcat(file_path,image_name));I = imadjust(H, [55/255, 160/255], [0, 1]);Ig=rgb2gray(I);%imhist(Ig);Img=adapthisteq(Ig);%imshow(H1);%title('adapthisteq均衡后的图');imshow(Img)%saveas(gcf,['E:\jlf\autoproject\A180130D_BH\A180130D_BH_png\test01\',image_name])% imwrite(Img,['E:\jlf\auto project\A180130D_BH\A180130D_BH_png\批量1out\',image_name]); %保存图片,~bw为矩阵取反,即反向imwrite(Img,['E:\jlf\autoproject\A180131D_PGY\20180301test01\',image_name]); %保存图片,~bw为矩阵取反,即反向end。

基于MATLAB GUI图像处理系统的设计与实现

基于MATLAB GUI图像处理系统的设计与实现

基于MATLAB GUI图像处理系统的设计与实现MATLAB是一种功能强大的图像处理工具,其GUI(图形用户界面)设计及实现可以使图像处理更加直观和简单。

本文将介绍基于MATLAB GUI图像处理系统的设计与实现,包括系统的功能设计、界面设计及实现步骤等内容,旨在为使用MATLAB进行图像处理的读者提供一些参考和帮助。

一、系统功能设计1. 图像基本处理功能:包括图像的读取、显示、保存,以及图像的基本操作(如缩放、旋转、翻转等)。

2. 图像增强功能:包括亮度、对比度、色彩平衡调整,以及直方图均衡化、滤波等操作。

3. 图像特征提取功能:包括边缘检测、角点检测、纹理特征提取等。

4. 图像分割功能:包括阈值分割、边缘分割、区域生长等。

5. 图像识别功能:包括基于模板匹配、人工智能算法的图像识别等。

6. 图像测量功能:包括测量图像中物体的大小、长度、面积等。

二、界面设计1. 主界面设计:主要包括图像显示区域、功能按钮、参数调节控件等。

2. 子功能界面设计:根据不同的功能模块设计相应的子界面,以便用户进行更详细的操作。

3. 界面美化:可以通过添加背景图案、调整按钮颜色、字体等方式美化界面,提高用户体验。

三、实现步骤1. 图像显示与基本处理:通过MATLAB自带的imread()函数读取图像,imshow()函数显示图像,并设置相应的按钮实现放大、缩小、旋转、翻转等基本操作。

2. 图像增强:利用imadjust()函数实现对图像亮度、对比度的调整,利用histeq()函数实现直方图均衡化,利用imfilter()函数实现图像的滤波处理。

3. 图像特征提取:利用edge()函数实现图像的边缘检测,利用corner()函数实现角点检测,利用texture()函数实现纹理特征提取。

4. 图像分割:利用im2bw()函数实现阈值分割,利用edge()函数实现边缘分割,利用regiongrowing()函数实现区域生长。

数字图像处理课程设计基于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中,可以使用imread函数直接读取图像。

通过指定图像的路径,我们可以将图像读取为一个矩阵,并且可以选择性地将其转换为灰度图像或彩色图像。

对于灰度图像,可以使用imshow函数将其显示出来,也可以使用imwrite函数将其保存为指定格式的图像文件。

对于彩色图像,可以使用imshow函数直接显示,也可以使用imwrite函数保存为指定格式的图像文件。

此外,还可以使用impixel函数获取图像中指定像素点的RGB值。

二、图像的预处理图像的预处理是指在进一步处理之前对图像进行调整和修复以消除图像中的噪声和不良的影响。

常用的图像预处理方法包括图像的平滑处理、图像增强和图像修复等。

1. 图像平滑处理:常用的图像平滑方法有均值滤波、中值滤波和高斯滤波等。

其中,均值滤波将每个像素点的值替换为其周围像素点的平均值,中值滤波将每个像素点的值替换为其周围像素点的中值,高斯滤波则通过加权平均的方式平滑图像。

2. 图像增强:图像增强是指通过一些方法提高图像的质量和信息内容。

常用的图像增强方法包括直方图均衡化、对比度拉伸和锐化等。

直方图均衡化通过调整图像的灰度分布,以提高图像的对比度和细节。

对比度拉伸是通过将图像的像素值线性拉伸到整个灰度范围内,以增强图像的对比度。

锐化则是通过增强图像的边缘和细节,使图像更加清晰。

三、图像的滤波处理图像的滤波处理是指通过对图像进行一系列滤波操作,来提取图像中的特征和信息。

常用的图像滤波方法包括模板滤波、频域滤波和小波变换等。

1. 模板滤波:模板滤波是基于局部像素邻域的滤波方法,通过定义一个滤波模板,将其与图像进行卷积操作,从而实现图像的滤波。

基于matlab的遥感图像处理程序

基于matlab的遥感图像处理程序

基于matlab的遥感图像处理程序报告南京理工大学电光学院,无履仙人一、程序简介基于matlab的GUI可视化遥感图像处理程序,界面布局如下图:菜单栏包括:文件,图像旋转,自动识别有效区域,获取有效区域,压缩,图像增强,伪彩色图像,还原重做,退出,关于等项。

主界面部分包含两个图像显示,和部分按钮及需要输入的参数。

由于界面大小有限,部分功能留在菜单栏中。

二、处理步骤及部分源码1、打开和保存文件首先是文件菜单,包含打开和保存,打开的文件将显示在原始图像和处理图像两部分中,在处理过程中,原始图像不变,以作为和处理图像对比,保存图片只保存处理后的图片,处理前的图片不做保存。

图片打开后如图所示,2、图像旋转由图可见图像有部分区域无有效信息,不利于处理和获得有效信息,故应去除,首先进行旋转,便于去除无效区域。

在旋转角度编辑栏内输入要旋转的角度然后点旋转按钮,进行旋转。

旋转后如图,图像旋转源码为:function imrotate_Callback(hObject, eventdata, handles)h=getappdata(handles.figure_demo,'img_2');x=get(handles.angle,'string');an=str2num(x);g=imrotate(h,an,'bilinear','crop');img_2=g;axes(handles.tag);imshow(img_2);setappdata(handles.figure_demo,'img_2',img_2);3。

、有效区域自动提取现在图中有效区域基本是在一个矩形内,可以通过算法将有效区域边界的坐标求出来,单击自动识别有效区域按钮,求出后显示在图片右边的静态文本框内。

如下图,图像自动识别有效区域源码如下,function auto_Callback(hObject, eventdata, handles)h=getappdata(handles.figure_demo,'img_2');[x,y]=size(h);flag=1;for i=1:xfor j=1:yif h(i,j)~=0&flag==1x1=i;flag=0;endif h(i,j)~=0x2=i;endendendfor j=1:yfor i=1:xif h(i,j)~=0&flag==0y1=j;flag=1;endif h(i,j)~=0y2=j;endendendset(handles.x_1,'String',num2str(x1));set(handles.x_2,'String',num2str(x2));set(handles.y_1,'String',num2str(y1));set(handles.y_2,'String',num2str(y2));y0=y2-y1;x0=x2-x1;rect=[y1,x1,y0,x0];setappdata(handles.figure_demo,'rect',rect);4、获取有效区域获得有效区域坐标后,就可以通过简单的命令获得遥感图像的有效区域了,单击菜单栏的“获取有效区域”按钮,就可获得。

使用MATLAB进行图像处理的基本方法

使用MATLAB进行图像处理的基本方法第一章:介绍MATLAB图像处理工具箱MATLAB是一种用于算法开发、数据可视化和数值计算的高级工具。

图像处理是MATLAB中重要的应用之一,其图像处理工具箱提供了许多功能强大的函数和工具,能够完成各种图像处理任务。

1.1 图像处理基础图像处理是通过计算机对图像进行分析、处理和改变的过程。

它可以用于增强图像的质量、从图像中提取有用的信息或特征,以及实现图像的压缩和恢复等任务。

1.2 MATLAB图像处理工具箱的功能MATLAB图像处理工具箱提供了丰富的函数和工具,包括图像读取和写入、图像增强、图像分割、图像滤波、图像变换等。

这些功能可以帮助用户对图像进行各种处理和分析。

第二章:图像预处理图像预处理是图像处理的第一步,其目的是消除图像中的噪声和其他不必要的信息,使后续的处理更加准确和有效。

2.1 图像读取和显示在MATLAB中,可以使用imread函数读取图像,imshow函数显示图像。

读取图像后,可以对图像进行显示、调整亮度和对比度等操作。

2.2 图像增强图像增强是通过对图像的像素值进行调整,改善图像的视觉质量。

常用的图像增强方法有直方图均衡化、对比度拉伸和滤波等。

第三章:图像分割图像分割是将图像划分成若干个具有独立意义的部分的过程。

图像分割可以帮助我们识别并提取出感兴趣的目标,进行后续的处理和分析。

3.1 基于阈值的图像分割阈值分割是一种简单且有效的图像分割方法,其思想是将图像中的像素分成前景和背景两部分。

MATLAB提供了imbinarize函数用于阈值分割。

3.2 基于边缘的图像分割边缘分割基于图像中物体的边界特征,通过检测图像中的边缘来实现图像分割。

MATLAB中的边缘检测函数包括edge和gradient。

第四章:图像滤波图像滤波是对图像进行平滑或增强处理的过程,它可以帮助去除图像中的噪声、增强图像的边缘和细节等。

4.1 线性滤波线性滤波是一种基于加权和求和的滤波方法,常用的线性滤波器有均值滤波器和高斯滤波器等。

(完整版)数字图像处理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的图像处理课程设计一、课程目标知识目标:1. 学生能理解图像处理的基本概念,掌握图像的数字化表示方法。

2. 学生能掌握Matlab软件的基本操作,运用其图像处理工具箱进行图像的读取、显示和保存。

3. 学生能掌握图像处理的基本算法,如灰度变换、图像滤波、边缘检测等,并理解其原理。

技能目标:1. 学生能运用Matlab进行图像处理操作,解决实际问题。

2. 学生能通过编程实现图像处理算法,具备一定的程序调试和优化能力。

3. 学生能运用所学知识,结合实际问题,设计简单的图像处理程序。

情感态度价值观目标:1. 学生通过学习图像处理,培养对计算机视觉和人工智能领域的兴趣,激发创新意识。

2. 学生在课程实践中,培养团队协作精神,提高沟通与表达能力。

3. 学生能认识到图像处理技术在生活中的广泛应用,增强学以致用的意识。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握基本图像处理知识的基础上,通过Matlab软件的实践操作,培养其编程能力和解决实际问题的能力。

同时,注重培养学生的团队协作和情感态度,使其在学习过程中获得成就感,激发学习兴趣。

课程目标将具体分解为学习成果,以便后续教学设计和评估。

二、教学内容1. 图像处理基础理论:- 数字图像概念及表示方法- 图像处理的基本操作:读取、显示、保存- 像素运算与邻域处理2. Matlab基础操作:- Matlab软件安装与界面介绍- 数据类型与基本运算- 矩阵运算与函数编写3. 图像处理算法:- 灰度变换与直方图处理- 图像滤波:低通滤波、高通滤波- 边缘检测:Sobel算子、Canny算子4. 实践项目:- 图像增强与去噪- 图像分割与特征提取- 目标检测与跟踪5. 教学大纲:- 第一周:图像处理基础理论,Matlab基础操作- 第二周:灰度变换与直方图处理,图像滤波- 第三周:边缘检测,实践项目一- 第四周:图像分割与特征提取,实践项目二- 第五周:目标检测与跟踪,课程总结与展示教学内容根据课程目标,结合教材章节进行选择和组织,确保科学性和系统性。

基于MATLAB GUI图像处理系统的设计与实现

基于MATLAB GUI图像处理系统的设计与实现摘要:本文主要介绍了基于MATLAB GUI的图像处理系统的设计与实现过程。

文章介绍了图像处理的基本概念和相关技术,然后详细阐述了MATLAB GUI的设计原理和实现方法。

接着,本文对图像处理系统的功能模块进行了详细的设计与实现,包括图像的读取、显示、处理和保存等功能。

文章对系统进行了实验测试,并对系统的性能和稳定性进行了评估。

通过本文的研究和实践,可为MATLAB GUI图像处理系统的设计与实现提供一定的参考和指导。

一、引言二、图像处理的基本概念和相关技术图像处理是对图像进行获取、处理、分析和识别等一系列操作的过程。

在图像处理中,常用的技术包括图像采集与存储、图像增强、图像复原、图像压缩、图像分割、图像识别等。

这些技术在医学影像、遥感图像、安防监控等领域有着广泛的应用。

三、MATLAB GUI的设计原理和实现方法MATLAB GUI是一种基于MATLAB的图形用户界面设计工具,可以方便地实现交互式的图形界面。

MATLAB提供了丰富的GUI设计函数和工具,包括控件的设计与布局、事件处理、界面调整等功能。

通过这些工具,可以方便地设计和实现各种类型的图像处理系统。

在设计MATLAB GUI时,主要包括以下几个步骤:1. 设计GUI界面:包括控件的选择和布局、界面的美化和调整等操作。

2. 编写回调函数:对于每个控件的事件,需要编写相应的回调函数,定义其处理逻辑和功能。

3. 运行GUI程序:将设计好的GUI程序运行在MATLAB平台上,测试其性能和稳定性。

通过以上步骤,可以方便地设计和实现一个交互式的图像处理系统。

四、图像处理系统的设计与实现基于MATLAB GUI,设计并实现了一个简单的图像处理系统,主要包括图像的读取、显示、处理和保存等功能。

具体的设计过程如下:2. 编写回调函数:对于每个控件的事件,需要编写相应的回调函数,定义其处理逻辑和功能。

对于文件读取按钮,编写了一个回调函数来实现图像的读取和显示功能;对于图像处理功能按钮,编写了不同的回调函数来实现图像的处理和保存功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Matlab基本图像处理程序————————————————————————————————作者:————————————————————————————————日期:ﻩ图像读入●从图形文件中读入图像imreadSyntax:A = imread(, fmt):指定的灰度或彩色图像文件的完整路径和文件名。

fmt:指定图形文件的格式所对应的标准扩展名。

如果imread没有找到所制定的文件,会尝试查找一个名为的文件。

A:包含图像矩阵的矩阵。

对于灰度图像,它是一个M行N列的矩阵。

如果文件包含RGB 真彩图像,则是m*n*3的矩阵。

●对于索引图像,格式[X, map]=imread(, fmt)X:图像数据矩阵。

MAP:颜色索引表图像的显示●imshow函数:显示工作区或图像文件中的图像●Syntax:imshow(I) %I是要现实的灰度图像矩阵imshow(I,[low high],param1,val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数imshow(RGB)imshow(BW)imshow(X,map) %map颜色索引表imshow()himage=imshow(...)●操作:读取并显示图像I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据imshow(I);%显示原图像图像增强一.图像的全局描述直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。

图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。

灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。

描述了一幅图像的灰度级统计信息。

是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。

归一化直方图:直接反应不同灰度级出现的比率。

纵坐标表示具有各个灰度级别的像素在图像中出现的概率。

图像的灰度直方图:是一个离散函数,表示图像每一灰度级与该灰度级出现概率的对应关系。

图像的灰度直方图运算: imhist()函数,其横坐标表示像素的灰度级别,纵坐标为像素点的个数。

●Imhist函数=Display histogramof image data显示灰度直方图的函数●Syntax:①imhist(I) % I为要计算的灰度直方图图像②imhist(I, n) %n指定的灰度级的数目,表示所有灰度级均匀分布在n个小区间内。

③imhist(X, map)④[counts,x] =imhist(...)%counts直方图数据向量。

counts(i)第i个灰度区间中的像素数目。

x是保存了对应的灰度小区间的向量。

注意:若调用时不接受这个函数的返回值,则直接显示直方图;在得这些返回数据之后,也可以使用stem(x,counts)手绘直方图。

●例1:显示某一图像的灰度直方图I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读入图像imhist(I) %显示图像的灰度直方图●例2:显示原图像和图像的灰度直方图I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读入图像figure;imshow(I); %显示原始图像title('source');figure;imhist(I); %显示图像的灰度直方图title('graph');注意:这里显示的是未经归一化的灰度直方图,纵轴表示图像中所有像素取到某一特定灰度值的次数,横轴表示所有灰度值。

●例3:归一化直方图I=imread('C:\Users\fanjinfei\Desktop\baby.bmp'); %读入原图像figure; %打开新窗口[M,N]=size(I); %计算图像大小[counts,x]=imhist(I,32) ; %计算有32个小区间的灰度直方图counts=counts/M/N; %计算归一化灰度直方图各区间的值stem(x,counts) %绘制归一化直方图注意:counts保存了落入每个区间的像素个数.图像归一化:就是将图像转换成唯一的标准形式,消除同类图像不同变形体之间的外观差异。

二.直方图均衡化目的:通过某种灰度映射,使输入图像转换为在每个灰度级上都具有近似相同的像素点数的输出图像。

(输出的直方图均匀)结果:使图像具有较高的对比度和较大的动态范围。

●Histeq函数:Enhance contrastusing histogramequalization直方图均衡化●Syntax:[J, T]= histeq(I)%I是原始图像;J是直方均衡化的输出图像,T是变换矩阵●例:利用直方图均衡化来实现图像的灰度归一化。

Matlab的实现:I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读入图像I=im2double(I);%对比度变大的图像I1=2*I-55/255;subplot(4,4,1);imshow=(I1);subplot(4,4,2);imhist=(I1);subplot(4,4,3);imshow=(histeq(I1));subplot(4,4,4);imhist=(histeq(I1));一.滤波操作:【相关函数imfilter和fspecial】1.函数imfilter:完成滤波操作。

●函数原型:g=imfilter(f,w,option1,option2,.....)●参数:f:进行滤波操作的图像;w:滤波操作使用的模版,为一个二维数组;option1,option2,...:可选项。

返回值:g为滤波后输出的图像。

【其中可选项:①边界选项:采用固定值填充虚拟边界,会使边缘附近产生梯度‘replicate’:填充虚拟边界的内容总是重复与它最近的边缘像素。

②尺寸选项:由于滤波中填充了边界,有必要指定输出图像g的大小。

③模式选项:滤波过程是相关还是卷积。

‘corr’:相关‘conv’:卷积】●线性滤波过程f=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读入图像figure;imshow(f);w=[1 1 1;111;111;1 1 1]/9g=imfilter(f,w,'corr','replicate');%l滤波figure;figure,imshow(g);2.函数fspecial:为我们创建一些预定义的2维滤波器,直接供函数imfilter使用。

●调用格式:h=fspecial(type,parameters)●参数:type:指定滤波器类型。

如’average’:平均模版parameters:可选项。

返回值:h为特定滤波器。

●举例:1.h=fspecial(‘average’,hsize) %返回一个大小为hsize的平均模板滤波器。

2.h=fspecial(‘disk’,radius)%返回一个大小为半径为radius的圆形平均模板。

3.h=fspecial(‘gaussian’,hsize,sigma) %返回一个大小为hsize,标准差sigma 的高斯低通滤波器。

4.h=fspecial(‘sobel’) %返回一个加强水平边缘竖直梯度算子。

subplot=Create axesintiledpositions建立坐标轴Syntax:subplot(m,n,p)im2double=Convertimage todouble precision将图像转换成双精度Syntax:I2 =im2double(I)RGB2= im2double(RGB)I =im2double(BW)X2 =im2double(X,'indexed')注意:I=imread('C:\Users\fanjinfei\Desktop\picture.png');%读取图像数据n=length(I);figure;imshow('I');%显示原图像%产生噪声图像theta_noise=15;%噪声方差(可设为其他值)-------------------------------------------%noise_sig_truth=20; % sigma_n used in the paper. Thisparameter is adjusted by theuser.noise_mu = 0;noise=randn(size(I)) .* theta_noise + noise_mu;Inoise=double(I) + noise;figure;imshow(Inoise,[]);%显示带噪图像%小波滤波器选择这个是调用滤波器函数,但是仿真出错qmf=MakeONFilter('Daubechies',8);%Daubechies8小波(可设为其他小波)-----------------L=5;%分解层数=log2(n)-L[InoiseNorm,coef] = NormNoise2(Inoise,qmf);%归一化,这个一直出现问题是怎么回事?wc=FWT2_PO(InoiseNorm,L,qmf);%这个也没有%--------------------------VisuShrink方法-----------------------------------------%wc= MultiVisu2(wc,L);%---------------------------------------------------------------------------------%--------------------------SUREShrink方法-----------------------------------------wc = MultiSURE2(wc,L);图像去噪canny边缘检测I=imread('lena.bmp'); %读灰度图lena.bmp%Canny edge detectorth=[0.05 0.2];E=edge(I,'canny',th);E=uint8(255*(1-double(E)));figure('name','canny'),imshow(uint8(E),'truesize');sobel边缘检测I=imread('lena.bmp');%读灰度图lena.bmp %sobel edge detectorE=edge(I,'sobel',0.08);E=uint8(255*(1-double(E)));figure('name','canny'),imshow(uint8(E),'truesize');练习:%读取原始图像I=imread('C:\Users\fanjinfei\Desktop\picture.png');%读取图像数据n=length(I);figure;imshow(I),title('原图') %显示原图像%缩小图像J = imresize(I,0.5);%将图像缩小至0.5倍figure;imshow(J),title('0.5 倍图')%显示缩小后的图像%显示尺寸[mrows,mcols] =size(I)%查看原始的尺寸大小[mrows,mcols] =size(J)%查看缩放图像的尺寸大小%放大图像K=imresize(I,1.5); %将图像放大1.5 倍figure;imshow(K),title('1.5 倍图') %显示放大后的图像%设置尺寸M = imresize(I,[250,600]);%设置图像的尺寸大小figure;imshow(M),title('250*600 图')%逆时针旋转图像I45 = imrotate(I,45);%对图像逆时针旋转45度figure;imshow(I45),title('逆时针45 度') %显示逆时针旋转后的图像%逆时针旋转图像I45 =imrotate(I,-45);figure;imshow(I45),title('顺时针45度')%对图像逆时针旋转180 度,即反转IR = imrotate(i, 180);figure;imshow(iR),title('反转')%裁剪图像,读入图像文件,然后调用命令,进入裁剪阶段。

相关文档
最新文档