版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 图像处理软件设计基础9.1 用Matlab语言进行图像处理 9.2 用C语言进行图像处理9.3 用硬件描述语言进行图像处理2022-6-22Matlab 图像处理工具箱图像处理工具箱Image Processing Toolboxn提高图像质量,使模糊的图像变得清晰;提高图像质量,使模糊的图像变得清晰;n提取图像的有效特征,以便进行模式识别;提取图像的有效特征,以便进行模式识别;n通过图像变换和有效编码来压缩其频带或数据,通过图像变换和有效编码来压缩其频带或数据,以便传输或存储。以便传输或存储。9.1 用Matlab语言进行图像处理 2022-6-23一、一、图像处理工具箱函数图像处理
2、工具箱函数 包含一百余个函数,按其内容划分为以下包含一百余个函数,按其内容划分为以下几几类:类:、图像显示函数;、图像显示函数;、图像文件输入、输出函数;、图像文件输入、输出函数;、图像几何操作函数;、图像几何操作函数;、图像像素值及统计函数;、图像像素值及统计函数;、图像分析函数;、图像分析函数;、图像增强函数;、图像增强函数;、线性滤波函数;、线性滤波函数;2022-6-24、二维线性滤波器设计函数;、二维线性滤波器设计函数;、图像变换函数;、图像变换函数;、图像邻域及块操作函数;、图像邻域及块操作函数;、二值图像操作函数;、二值图像操作函数;、基于区域的图像处理函数;、基于区域的图像处理
3、函数;、颜色图操作函数;、颜色图操作函数;、颜色空间转换函数;、颜色空间转换函数;、图像类型和类型转换函数。、图像类型和类型转换函数。一、一、图像处理工具箱函数(图像处理工具箱函数(cont.cont.)2022-6-25分别为:分别为: 真彩色图像(真彩色图像(RGB imagesRGB images);); 索引色图像(索引色图像(index imagesindex images) ; 灰度图像(灰度图像(intensity imagesintensity images) ; 二值图像(二值图像(binary imagesbinary images) 。 由于有的函数对图像类型有限制,这四
4、种类型可以用由于有的函数对图像类型有限制,这四种类型可以用工具箱的类型转换函数相互转换。工具箱的类型转换函数相互转换。 二、二、工具箱支持的图像类型工具箱支持的图像类型2022-6-26Matlab 可操作的图像文件可操作的图像文件包括:包括: BMP HDF JPEGPCXTIFFXWD2022-6-27三、常用图像操作三、常用图像操作 图像的读写与显示操作:用图像的读写与显示操作:用imread( )读取图像,读取图像,imwrite( )输出图像。输出图像。 图像显示于屏幕:图像显示于屏幕:imshow( ) 。 图像进行裁剪:图像进行裁剪:imcrop( )。 图像的插值缩放:图像的插
5、值缩放:imresize( )。 图像的图像的旋转:旋转:imrotate( ) 。 2022-6-28四、图像增强功能四、图像增强功能 图像增强是数字图像处理过程中常用的图像增强是数字图像处理过程中常用的一种方法,目的是采用一系列技术去改一种方法,目的是采用一系列技术去改善图像的视觉效果或将图像转换成一种善图像的视觉效果或将图像转换成一种更适合于人眼观察和机器自动分析的形更适合于人眼观察和机器自动分析的形式式 。2022-6-29 灰度直方图均衡化。灰度直方图均衡化。 灰度变换法。灰度变换法。 平滑与锐化滤波。平滑与锐化滤波。图像增强方法图像增强方法2022-6-2101 1、灰度直方图均衡
6、化、灰度直方图均衡化 均匀量化的自然图像的均匀量化的自然图像的灰度直方图通常在低灰灰度直方图通常在低灰度区间上频率较大,使得图像中较暗区域中的度区间上频率较大,使得图像中较暗区域中的细节看不清楚,细节看不清楚,采用直方图修整可使原图像灰采用直方图修整可使原图像灰度集中的区域拉开或使灰度分布均匀,从而增度集中的区域拉开或使灰度分布均匀,从而增大反差,使图像的细节清晰,达到增强目的。大反差,使图像的细节清晰,达到增强目的。 直方图均衡化可用直方图均衡化可用histeq( )函数实现。函数实现。 2022-6-2112 2、灰度变换法、灰度变换法 照片或电子方法得到的图像,常表现出低对比照片或电子方
7、法得到的图像,常表现出低对比度即整个图像偏亮或偏暗,为此需要对图像中度即整个图像偏亮或偏暗,为此需要对图像中的每一像素的灰度级进行灰度变换,扩大图像的每一像素的灰度级进行灰度变换,扩大图像灰度范围,以达到改善图像质量的目的。灰度范围,以达到改善图像质量的目的。 这一灰度调整过程可用这一灰度调整过程可用imadjust( )函数实现。函数实现。 2022-6-2123 3、平滑滤波、平滑滤波 平滑技术用于平滑图像中的噪声,基本采用在平滑技术用于平滑图像中的噪声,基本采用在空间域上的求平均值或中值。或在频域上采取空间域上的求平均值或中值。或在频域上采取低通滤波,因在灰度连续变化的图像中,我们低通滤
8、波,因在灰度连续变化的图像中,我们通常认为与相邻像素灰度相差很大的突变点为通常认为与相邻像素灰度相差很大的突变点为噪声点,灰度突变代表了一种高频分量,低通噪声点,灰度突变代表了一种高频分量,低通滤波则可以削弱图像的高频成分,平滑了图像滤波则可以削弱图像的高频成分,平滑了图像信号,信号,但也可能使图像目标区域的边界变得模但也可能使图像目标区域的边界变得模糊。糊。2022-6-2134 4、锐化滤波、锐化滤波 而锐化技术采用的是频域上的高通滤波方法,而锐化技术采用的是频域上的高通滤波方法,通过增强高频成分减少图像中的模糊,特别是通过增强高频成分减少图像中的模糊,特别是模糊的边缘部分得到了增强,模糊
9、的边缘部分得到了增强,但同时也放大了但同时也放大了图像的噪声。图像的噪声。 在在Matlab 中,各种滤波方法都是在空间域中中,各种滤波方法都是在空间域中通过不同的卷积模板即滤波算子实现,可用通过不同的卷积模板即滤波算子实现,可用fspecial( )函数创建预定义的滤波算子,然后用函数创建预定义的滤波算子,然后用filter2( )或或conv2( )函数在实现卷积运算的基础函数在实现卷积运算的基础上进行滤波。上进行滤波。2022-6-214五、图像边缘检测和图像分割功能五、图像边缘检测和图像分割功能 边缘检测是一种重要的区域处理方法,边缘是边缘检测是一种重要的区域处理方法,边缘是所要提取目
10、标和背景的分界线,所要提取目标和背景的分界线,提取出边缘才提取出边缘才能将目标和背景区分开来。能将目标和背景区分开来。如果一个像素落在如果一个像素落在边界上,那么它的邻域将成为一个灰度级变化边界上,那么它的邻域将成为一个灰度级变化的带。对这种变化最有用的的带。对这种变化最有用的两个特征是灰度的两个特征是灰度的变化率和方向。变化率和方向。2022-6-215五、图像边缘检测和图像分割功能(五、图像边缘检测和图像分割功能(cont.cont.) 边缘检测算子可以检查每个像素的邻域并对灰度变化边缘检测算子可以检查每个像素的邻域并对灰度变化率进行量化,也包括对方向的确定,其中大多数是基率进行量化,也包
11、括对方向的确定,其中大多数是基于方向导数掩模求卷积的方法。于方向导数掩模求卷积的方法。 Matlab工具箱提供的工具箱提供的edge( )函数可针对函数可针对sobel 算子、算子、prewitt 算子、算子、roberts算子、算子、log 算子、算子、zero-cross和和canny 算子实现检测边缘的功能。算子实现检测边缘的功能。 基于灰度的图像分割方法也可以用简单的基于灰度的图像分割方法也可以用简单的Matlab代码代码实现。实现。2022-6-216六、图像变换功能六、图像变换功能 图像变换技术是图像处理的重要工具,常运用于图像图像变换技术是图像处理的重要工具,常运用于图像压缩、滤
12、波、编码和后续的特征抽取或信息分析过程。压缩、滤波、编码和后续的特征抽取或信息分析过程。 Matlab 工具箱提供了常用的变换函数,如工具箱提供了常用的变换函数,如fft2( )与与ifft2( )函数分别实现二维快速傅立叶变换与其逆变换,函数分别实现二维快速傅立叶变换与其逆变换,dct2( )与与idct2( )函数实现二维离散余弦变换与其逆变函数实现二维离散余弦变换与其逆变换。换。 Matlab 还提供了如二值图像的膨胀运算还提供了如二值图像的膨胀运算dilate( )函数、函数、腐蚀运算腐蚀运算erode( )函数等基于数学形态学与二值图像的函数等基于数学形态学与二值图像的操作函数。操作
13、函数。2022-6-217七、七、 Matlab图像处理工具箱运用实例图像处理工具箱运用实例 为了说明为了说明Matlab 语言是一种简洁,可读性较语言是一种简洁,可读性较强的高效率编程软件,通过运用图像处理工具强的高效率编程软件,通过运用图像处理工具箱中的有关函数箱中的有关函数, ,对图对图“boardboard.tif”为一幅电路为一幅电路板的原图像进行处理。该图像右边的剪切图像板的原图像进行处理。该图像右边的剪切图像为从为从“boardboard.tif”中剪切出的将用于分析的子图中剪切出的将用于分析的子图像块。为了便于分析与观察,把子图像块旋转像块。为了便于分析与观察,把子图像块旋转1
14、80 度置于水平位置并把该图存在名为度置于水平位置并把该图存在名为“board_new.bmp” 的图像文件中。的图像文件中。2022-6-2181 1、图像读取、显示、截取、旋转、写入图像读取、显示、截取、旋转、写入x=imread(board.tif);imshow(x);y=imcrop(x);figure,imshow(y);z=imrotate(y,180);figure,imshow(z);imwrite(z, board_new.bmp, bmp);2022-6-219截取旋转180度1 1、图像读取、显示、截取、旋转、写入图像读取、显示、截取、旋转、写入(cont.)(cont
15、.)2022-6-2202 2、对灰度图进行直方图均衡化处理、对灰度图进行直方图均衡化处理 先判断看所给图像是否为一真彩色图像?如果先判断看所给图像是否为一真彩色图像?如果是,将其转换为灰度图像是,将其转换为灰度图像,以下所有的进一步处以下所有的进一步处理均采用经过灰度化处理后的图像作为原图。理均采用经过灰度化处理后的图像作为原图。 对灰度图进行直方图均衡化处理。通过比较灰对灰度图进行直方图均衡化处理。通过比较灰度原图和经均衡化后的图形可见图像变得清晰,度原图和经均衡化后的图形可见图像变得清晰,均衡化后的直方图形状比原直方图的形状更理均衡化后的直方图形状比原直方图的形状更理想。想。2022-6
16、-2212 2、对灰度图进行直方图均衡化处理、对灰度图进行直方图均衡化处理(cont.)(cont.)m=imread(board_new.bmp);n=rgb2gray(m);imshow(n);figure,imhist(n);I=histeq(n);figure,imshow(I);figure,imhist(I);2022-6-222“board_new.bmp”的灰度化图像(原图)均衡化前直方图2 2、对灰度图进行直方图均衡化处理、对灰度图进行直方图均衡化处理(cont.)(cont.)2022-6-223经直方图均衡化后的图像均衡化后直方图2 2、对灰度图进行直方图均衡化处理、对灰
17、度图进行直方图均衡化处理(cont.)(cont.)2022-6-2243 3、灰度图像平滑与锐化处理、灰度图像平滑与锐化处理 灰度图像平滑与锐化处理。灰度图像平滑与锐化处理。 Matlab 图像工具图像工具箱中有多种平滑与锐化滤波函数,也可以自定箱中有多种平滑与锐化滤波函数,也可以自定义滤波算子。义滤波算子。 在此我们采用可根据图像的局部方差来调整滤在此我们采用可根据图像的局部方差来调整滤波器输出的自适应滤波对图像进行平滑,及采波器输出的自适应滤波对图像进行平滑,及采用拉氏算子运算使图像的模糊部分得到增强。用拉氏算子运算使图像的模糊部分得到增强。2022-6-2253 3、灰度图像平滑与锐化
18、处理、灰度图像平滑与锐化处理(cont.)(cont.)x=imread(board_new.bmp);x=rgb2gray(x);x=double(x);p=wiener2(x);imshow(p, );h=0 1 0;1 -4 1;0 1 0;q= conv2(x,h, same);r= x - q ;figure,imshow(r, ) ;2022-6-226采用自适应滤波平滑利用拉氏算子卷积锐化3 3、灰度图像平滑与锐化处理、灰度图像平滑与锐化处理(cont.)(cont.)“board_new.bmp”的灰度化图像(原图)常用的图像处理函数 Imread Imshow Imwrite
19、 Imadjust Edge Imhist Imfilter Medfilt2 Fft2 Dct2 Wavedec29.2 用C语言进行图像处理 C语言与MatLab语言的区别: MatLab是用于科学计算的编程环境,编程风格与C语言类似。但是MatLab集成了针对各不同学科的常用的计算函数,往往C语言或其他语言需要几百行甚至几千行的代码,在MatLab中一个语句就可以完成。因此,MatLab编程很容易。 MatLab的缺点是效率低,运行速度慢。但是MatLab提供了与C或C+的接口,可在VC中调用MatLab中的函数,进而可以提高速度。 常用的图像处理编程一般可在VC或VS中实现。9.2 用
20、C语言进行图像处理 OpenCV(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,具有轻量级、高效率等优点,由一系列C函数和少量C+类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了500多个图像处理和计算机视觉方面的通用算法。 在VC中调用OpenCV库函数,可以大大加快图像处理软件开发速度。First OpenCV Program1. #include 2. #include 3. #include 4. int main( int argc, char* argv ) 5. CvPoint cente
21、r;6. double scale=-3;7. IplImage* image = argc=2 ? (argv1) : 0;8. if(!image) return -1;9. center = (image-width/2,image-height/2);10. for(int i=0;iheight;i+)11. for(int j=0;jwidth;j+) 12. double dx=(double)(j-center.x)/center.x;13. double dy=(double)(i-center.y)/center.y;14. double weight=exp(dx*dx+
22、dy*dy)*scale);15. uchar* ptr = &(image,uchar,i,j*3);16. ptr0 = (ptr0*weight);17. ptr1 = (ptr1*weight);18. ptr2 = (ptr2*weight); 19. ( “copy.png”, image );20. ( test, 1 );21. ( test, image );22. ();23. return 0; Radial gradientThe Program Quick Reviewshort and clear program, no need to mess with
23、MFC/GTK/QT/, cross-platformcvLoadImage() and cvSaveImage() provide the easiest way to save/load images of various formats.cvPoint and other “constructor” functions make the code shorter and allow 1-line functions call.CV_IMAGE_ELEM() pretty fast way to access image pixelscvRound() is very fast and c
24、onvenient way to cast float/double to intcvNamedWindow() creates “smart” window for viewing an imagecvShowImage() shows image in the windowcvWaitKey() delays the execution until key pressed or until the specified timeout is over1. #include 2. #include 3. #include 4. int main( int argc, char* argv ) 5. CvPoint center;6. double scale=-3;7. IplImage* image = argc=2 ? (argv1) : 0;8. if(!image) return -1;9. center = (image-width/2,image-height/2);10. for(int i=0;iheight;i+)11. for(int j=0;jwidth;j+) 12. doub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省金华市东阳市东阳中学2027届九上物理期末学业质量监测模拟试题含解析
- 2027届吉林省长春市朝阳区第二实验学校九上物理期末联考试题含解析
- 福建省厦门市湖里区湖里中学2027届化学九上期中质量检测模拟试题含解析
- 2026年医院急诊科工作计划范文(2篇)
- 口腔医院2026年度工作总结及2026年工作计划
- (新)房地产资金信托合同范本
- 9 3德育考试题目与答案
- 2027届江苏省无锡市和桥区、张渚区九上化学期末学业质量监测试题含解析
- 陕西二级建造师常见试题及答案集锦
- 四川省南充市四校联考2027届物理九年级第一学期期末预测试题含解析
- 2026年秋季开学初三奋斗的青春动员大会课件
- 车间检验考试题目及参考答案
- 2026 年秋季开学初中新生入学适应教育课件
- 昆明交通投资集团有限公司招聘笔试题库
- 广东梅州市2026年基层公共就业创业服务岗位招聘考试试卷-含答案解析
- 译林版九年级英语上册单词默写表(2026秋)
- 中心静脉导管相关血流感染(CLABSI)防控与集束化护理策略
- 2025年一级造价师《案例分析交通》真题及答案解析
- 历史文化名城保护与发展研究
- 小区广告位招租模板(五篇)
- (完整版)支气管哮喘入院记录首次病程记录及出院记录
评论
0/150
提交评论