基于MATLAB的光学图像处理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由于计算机处理能力的不断增强,数字图像处理学科在飞速发展的同时,也 越来越广泛地向许多其他学科快速交叉渗透,使得图像作为信息获取以及信息的 利用等方面也变得越来越重要。目前数字图像处理的应用越来越广泛,已经渗透 到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的 作用。
MathWorks 公司推出的 MATLAB 软件是学习数理知识的好帮手。应用 MATLAB 友好的界面和丰富、实用、高效的指令及模块,可以使人较快地认识、理解图像 处理的相关概念,逐步掌握图像信号处理的基本方法,进而能够解决相关的工程 和科研中的问题。
i=0
i=0 n
式中 k 为灰度级数。
通过histeq函数实现直方图均衡。
因为此函数只能对灰度图像进行直方图均衡。故应先将彩图转为灰度图像。(可
利rgb2gray函数对其他图像进行灰度图像的转化,程序略。)
function pushbutton7_Callback(hObject, eventdata, handles)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes2); x=imhist(handles.img); %直方图统计 x1=x(1:10:256); horz=1:10:256; bar(horz,x1); axis([0 255 0 15000]); set(handles.axes2,'xtick',0:50:255); set(handles.axes2,'ytick',0:2000:15000);
end
对比度增强 2 倍后的图像
1.3&1.4、直方图均衡化和直方图统计:
直方图均衡主要是对在图像中像素个数多的灰度级进行展宽,而对像素个数
少的灰度级进行缩减,从而使图像变得清晰。通过点运算使输入图像转换为在每
一灰度级上都有相同的像素点的数目,即输出图像的直方图是平的。
图像灰度的直方图是反映一幅图像中的灰度级与出现这种灰度的概率之间
图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域 必然涉及到人类生活和工作的方方面面。随着人类活动范围的不断扩大, 图像处理的应用领域也将随之不断扩大,已在国家安全、经济发展、日常 生活中充当越来越重要的角色,对国计民生的作用不可低估。
二.预处理:
利用 matlab 的 GUI 程序设计一个简单实用的图像处理程序。该程序应具备 图像处理的常用功能,以满足用户的使用。现设计程序有以下基本功能: 1)图像的读取和保存。 2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整, 显示和对比变换前后的图像。 3)图像旋转:进行上下镜像,左右镜像。 4)用于实现图像的直观性和简单性,使用图像阈值处理。 5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的 效果。 6)将高频强调滤波与直方图均衡化结合起来,用于医学图像的增强。 7)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。 8)额外功能。
注:本文在 PDF 格式中添加书签以便翻阅,特此说明。
一.设计背景:
数字图像处理(Digital Image Processing),就是利用数字计算机或者 其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图 像的实用性。例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重 建等。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、 图像形态学处理、图像编码、图像重建、模式识别等。
function light_Callback(hObject, eventdata, handles) % hObject handle to light (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global T axes(handles.axes2); T=getimage;
switch str case'增强'
T=getimage; prompt={'输入参数:'}; defans={'1'}; p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); f=immultiply(handles.img,p1); imshow(f); handles.img=f; guidata(hObject,handles);
function uipanel6_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to the selected object in uipanel6 % eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only) % OldValue: handle of the previously selected object or empty if none was selected % NewValue: handle of the currently selected object % handles structure with handles and user data (see GUIDATA) global T str=get(hObject,'string'); axes(handles.axes2);
本文涉及到的程序算法是基于 MATLAB 环境的。综合运用 MATLAB 工具箱 实现图像处理的 GUI 程序设计, 利用 MATLAB 图像处理工具箱,设计和实现自己 的 Photoshop 。
关键字:对比度 灰度级重构 锐化 直方图均衡 强调高频滤波与直方图
均衡 图像转动 底片效果 边缘信息 噪声图像 图像还原 维纳滤波
global T
axes(handles.axes2);
T=getimage;
h=histeq(handles.img);
%直方图均衡化;
imshow(h);
handles.img=h;
guidata(hObject,handles);
% --- Executes on button press in pushbutton12. function pushbutton12_Callback(hObject, eventdata, handles) % hObject handle to pushbutton12 (see GCBO)
三.原理及图像实现:
1.常用图像处理:
1.1、用函数 imadjust 进行亮度处理:
函数 imadjust 是对灰度图像进行亮度变换的基本 IPT 工具。语法: g = imadjust(f, [low_in high_in],[low_out high_out],gamma)
此函数将图像 f 中的亮度值映像到 g 中的新值,即将 low_in 至 high_in 之 间的值映射到 low_out 至 high_out 之间的值。输出的图像应为 uint8 类、uint16 类或 double 类图像。
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
在灰度级中,r=0 代表黑,r=1 代表白,从 r=0 到 r=1 之间数值的变化,反
映了像素 you3 黑之白的灰度变化。对于一幅给定的图像,每一像素取得(0,1)
wk.baidu.com
区间内的灰度级是随机的,即可以认为它是一个随机变量。假定 r 是连续的,那
么可以用概率密度函数 Pr (r)来表示原始图像的灰度分布。对数字图像来说,灰 度级看成是离散的,归一化后的 r 取值范围为
prompt={'调整倍数'}; defans={'0'};
p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); y=imadjust(handles.img,[ ], [ ],p1); imshow(y); handles.img=y; guidata(hObject,handles);
0≦r≦1,k=0,1,2,……,L-1 这里 L 为灰度级的数目
一幅给定的图像的灰度级分布在[0,1]区间内的任一个 r 值,都可产生一个
s 值,且任一 r 值可按下式变换:
s=T(r), T(r)为变换函数。
由概率论知,如果已知随机变量 r 的概率密度为 Pr (r),而随机变量 s 是 r 的函数,对于直方图均衡化后的连续图像,变换函数 T(r)与远图像概率密度函
数 P(r)之间的关系为:
r1
∫ s = T (r) = pr(r)dr 0
对于离散图像,第 i 个灰度级 ri 出现的频数用 ni 表示,该灰度级像素对应的
概率值 Pi (ri)为:
Pi (ri)= ni/n
n 是帧内像素总数,ri 满足归一化条件。
离散图像的变换函数表达式为:
∑ ∑ Si = T (ri) = k−1 pr(r) = k−1 ni ,
case'减弱' T=getimage; prompt={'输入参数:'}; defans={'1'}; p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); f=imdivide(handles.img,p1); imshow(f); handles.img=f; guidata(hObject,handles);
关系的图形。直方图的横坐标是灰度,一般用 r 表示。纵坐标是灰度值为 ri 的像 素个数或出现这个灰度值的概率 Pi (ri)。而且:
∑ pi(ri) = 灰度为ri的像素个数 , k−1 pr(ri) = 1,k 为一幅图像对应的灰度级数。
图像像素总个数
i=0
设变量 r 代表图像中像素的灰度级,如果作归一化处理,有 0≦r≦1
基于 MATLAB 的光学图像处理
学生:张雨辰 学号:1011100139 专业:光信息科学与技术
2013 年 1 月 2 日
摘要:
现代社会随着计算机科技的飞速发展,数码技术的日益提高,对图像进行数 字处理也越来越普遍。自然拍摄的照片,往往进行适当地处理之后可以消除黑边、 红眼、曝光不足等缺陷,使得图像变得更加好看。由于经过处理后的图像可能比 原来的要更加自然好看,也有可能变得模糊不清,效果变差。这就需要根据实际 图像的特点,哪些方面需要加以改进,就从那些方面着手,采用合适的算法,对 图像进行适当的数字处理。
%亮度调节
1.2、对比度:
亮度调整0.5倍后的图像。
增强对比度实际是增强原图像的各部分的反差。实际中往往是通过原图中某 两个灰度值之间的动态范围来实现的(如图 4-1)。
增强对比度
在上图中可以看出,通过变换可以使原图的较高的和较低的灰度值的动态范围减
小了,而原图在二者之间的动态范围增加了,从而其范围的对比度增加了。
直方图均衡化后图像
直方图统计(处理前)
直方图统计(处理后)
1.5、图像旋转:
一幅数字图像 f(x,y)的二维(p + q)阶矩定义为:
x ∑ ∑ mpq =
pyq f (x, y)
xy
其中,p,q=0,1,2,...,求和在跨越图像的所有空间坐标 x,y 的值上进行。相应的中心
矩定义为
∑ ∑ upq =
MathWorks 公司推出的 MATLAB 软件是学习数理知识的好帮手。应用 MATLAB 友好的界面和丰富、实用、高效的指令及模块,可以使人较快地认识、理解图像 处理的相关概念,逐步掌握图像信号处理的基本方法,进而能够解决相关的工程 和科研中的问题。
i=0
i=0 n
式中 k 为灰度级数。
通过histeq函数实现直方图均衡。
因为此函数只能对灰度图像进行直方图均衡。故应先将彩图转为灰度图像。(可
利rgb2gray函数对其他图像进行灰度图像的转化,程序略。)
function pushbutton7_Callback(hObject, eventdata, handles)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes2); x=imhist(handles.img); %直方图统计 x1=x(1:10:256); horz=1:10:256; bar(horz,x1); axis([0 255 0 15000]); set(handles.axes2,'xtick',0:50:255); set(handles.axes2,'ytick',0:2000:15000);
end
对比度增强 2 倍后的图像
1.3&1.4、直方图均衡化和直方图统计:
直方图均衡主要是对在图像中像素个数多的灰度级进行展宽,而对像素个数
少的灰度级进行缩减,从而使图像变得清晰。通过点运算使输入图像转换为在每
一灰度级上都有相同的像素点的数目,即输出图像的直方图是平的。
图像灰度的直方图是反映一幅图像中的灰度级与出现这种灰度的概率之间
图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域 必然涉及到人类生活和工作的方方面面。随着人类活动范围的不断扩大, 图像处理的应用领域也将随之不断扩大,已在国家安全、经济发展、日常 生活中充当越来越重要的角色,对国计民生的作用不可低估。
二.预处理:
利用 matlab 的 GUI 程序设计一个简单实用的图像处理程序。该程序应具备 图像处理的常用功能,以满足用户的使用。现设计程序有以下基本功能: 1)图像的读取和保存。 2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整, 显示和对比变换前后的图像。 3)图像旋转:进行上下镜像,左右镜像。 4)用于实现图像的直观性和简单性,使用图像阈值处理。 5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的 效果。 6)将高频强调滤波与直方图均衡化结合起来,用于医学图像的增强。 7)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。 8)额外功能。
注:本文在 PDF 格式中添加书签以便翻阅,特此说明。
一.设计背景:
数字图像处理(Digital Image Processing),就是利用数字计算机或者 其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图 像的实用性。例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重 建等。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、 图像形态学处理、图像编码、图像重建、模式识别等。
function light_Callback(hObject, eventdata, handles) % hObject handle to light (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global T axes(handles.axes2); T=getimage;
switch str case'增强'
T=getimage; prompt={'输入参数:'}; defans={'1'}; p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); f=immultiply(handles.img,p1); imshow(f); handles.img=f; guidata(hObject,handles);
function uipanel6_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to the selected object in uipanel6 % eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only) % OldValue: handle of the previously selected object or empty if none was selected % NewValue: handle of the currently selected object % handles structure with handles and user data (see GUIDATA) global T str=get(hObject,'string'); axes(handles.axes2);
本文涉及到的程序算法是基于 MATLAB 环境的。综合运用 MATLAB 工具箱 实现图像处理的 GUI 程序设计, 利用 MATLAB 图像处理工具箱,设计和实现自己 的 Photoshop 。
关键字:对比度 灰度级重构 锐化 直方图均衡 强调高频滤波与直方图
均衡 图像转动 底片效果 边缘信息 噪声图像 图像还原 维纳滤波
global T
axes(handles.axes2);
T=getimage;
h=histeq(handles.img);
%直方图均衡化;
imshow(h);
handles.img=h;
guidata(hObject,handles);
% --- Executes on button press in pushbutton12. function pushbutton12_Callback(hObject, eventdata, handles) % hObject handle to pushbutton12 (see GCBO)
三.原理及图像实现:
1.常用图像处理:
1.1、用函数 imadjust 进行亮度处理:
函数 imadjust 是对灰度图像进行亮度变换的基本 IPT 工具。语法: g = imadjust(f, [low_in high_in],[low_out high_out],gamma)
此函数将图像 f 中的亮度值映像到 g 中的新值,即将 low_in 至 high_in 之 间的值映射到 low_out 至 high_out 之间的值。输出的图像应为 uint8 类、uint16 类或 double 类图像。
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
在灰度级中,r=0 代表黑,r=1 代表白,从 r=0 到 r=1 之间数值的变化,反
映了像素 you3 黑之白的灰度变化。对于一幅给定的图像,每一像素取得(0,1)
wk.baidu.com
区间内的灰度级是随机的,即可以认为它是一个随机变量。假定 r 是连续的,那
么可以用概率密度函数 Pr (r)来表示原始图像的灰度分布。对数字图像来说,灰 度级看成是离散的,归一化后的 r 取值范围为
prompt={'调整倍数'}; defans={'0'};
p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); y=imadjust(handles.img,[ ], [ ],p1); imshow(y); handles.img=y; guidata(hObject,handles);
0≦r≦1,k=0,1,2,……,L-1 这里 L 为灰度级的数目
一幅给定的图像的灰度级分布在[0,1]区间内的任一个 r 值,都可产生一个
s 值,且任一 r 值可按下式变换:
s=T(r), T(r)为变换函数。
由概率论知,如果已知随机变量 r 的概率密度为 Pr (r),而随机变量 s 是 r 的函数,对于直方图均衡化后的连续图像,变换函数 T(r)与远图像概率密度函
数 P(r)之间的关系为:
r1
∫ s = T (r) = pr(r)dr 0
对于离散图像,第 i 个灰度级 ri 出现的频数用 ni 表示,该灰度级像素对应的
概率值 Pi (ri)为:
Pi (ri)= ni/n
n 是帧内像素总数,ri 满足归一化条件。
离散图像的变换函数表达式为:
∑ ∑ Si = T (ri) = k−1 pr(r) = k−1 ni ,
case'减弱' T=getimage; prompt={'输入参数:'}; defans={'1'}; p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); f=imdivide(handles.img,p1); imshow(f); handles.img=f; guidata(hObject,handles);
关系的图形。直方图的横坐标是灰度,一般用 r 表示。纵坐标是灰度值为 ri 的像 素个数或出现这个灰度值的概率 Pi (ri)。而且:
∑ pi(ri) = 灰度为ri的像素个数 , k−1 pr(ri) = 1,k 为一幅图像对应的灰度级数。
图像像素总个数
i=0
设变量 r 代表图像中像素的灰度级,如果作归一化处理,有 0≦r≦1
基于 MATLAB 的光学图像处理
学生:张雨辰 学号:1011100139 专业:光信息科学与技术
2013 年 1 月 2 日
摘要:
现代社会随着计算机科技的飞速发展,数码技术的日益提高,对图像进行数 字处理也越来越普遍。自然拍摄的照片,往往进行适当地处理之后可以消除黑边、 红眼、曝光不足等缺陷,使得图像变得更加好看。由于经过处理后的图像可能比 原来的要更加自然好看,也有可能变得模糊不清,效果变差。这就需要根据实际 图像的特点,哪些方面需要加以改进,就从那些方面着手,采用合适的算法,对 图像进行适当的数字处理。
%亮度调节
1.2、对比度:
亮度调整0.5倍后的图像。
增强对比度实际是增强原图像的各部分的反差。实际中往往是通过原图中某 两个灰度值之间的动态范围来实现的(如图 4-1)。
增强对比度
在上图中可以看出,通过变换可以使原图的较高的和较低的灰度值的动态范围减
小了,而原图在二者之间的动态范围增加了,从而其范围的对比度增加了。
直方图均衡化后图像
直方图统计(处理前)
直方图统计(处理后)
1.5、图像旋转:
一幅数字图像 f(x,y)的二维(p + q)阶矩定义为:
x ∑ ∑ mpq =
pyq f (x, y)
xy
其中,p,q=0,1,2,...,求和在跨越图像的所有空间坐标 x,y 的值上进行。相应的中心
矩定义为
∑ ∑ upq =