数字图像处理中有关于卷积的应用.pptx_第1页
数字图像处理中有关于卷积的应用.pptx_第2页
数字图像处理中有关于卷积的应用.pptx_第3页
数字图像处理中有关于卷积的应用.pptx_第4页
数字图像处理中有关于卷积的应用.pptx_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字图像处理(matlab版) 第一章 基本原理 第二章 亮度变换和空间卷积 汇报人:faith MATLAB的定义 MATLAB是矩阵实验室(Matrix Laboratory)的简 称,用于算法开发、数据可视化、数据分析以及数 值计算的高级技术计算语言和交互式环境。 数字图像处理matlab:利用MATLAB图像处理工具 箱进行数字图像处理的设计与应用,Matlab是标准 的计算工具,图像处理工具箱是一个matlab函数集 ,它扩展了matlab解决图像处理问题的能力。 第1章 基本原理 1.1常用的运算符和数据及图像类函数 1.2读取和显示图像及保存图像 1.3矩阵索引 1.1常用的运算符和数据及图像类函数 1.2 读取和显示图像及保存图像 1.2.1 显示图像和读取图像 从磁盘里读取一幅文件名为A_2.jpg的图像,提取该 图像的基本信息,并通过imshow将图像显示出来。 在matlab程序的command windows里输入如下: f=imread(A_2.jpg); whos f Name Size Bytes Class g 512x512x3 786432 uint8 array Grand total is 786432 elements using 786432 bytes Ps:当用imshow显示另一幅图像g时,MATLAB会在屏幕上用新图 像替换旧图像并同时显示第二幅图像,可以使用figure函数: figure,imshow(g) 1.2.2. 显示图像的基本信息 imfinfo A_3.jpg ans = Filename: A_3.jpg FileModDate: 22-Nov-2010 17:10:22 FileSize: 112284 Format: jpg FormatVersion: Width: 512 Height: 512 BitDepth: 24 ColorType: truecolor FormatSignature: NumberOfSamples: 3 CodingMethod: Huffman CodingProcess: Sequential Comment: 其中字节数等于 Width *Height*BitDepth/8=512 *512*24/8=786432 压缩比等于字节数除以 文件尺 =786432/112284=7.001 压缩比是在保持图像质 量与要求一致的前提下 得到的。除了在存储方 面有明显的优势以外, 这种压缩比在单位时间 内传输的数据量大约是 压缩前的7倍 1.2.3 保存图像 使用imwrite函数 输入 imwrite(f,patient10_run1,jpg) 或者imwrite(f,patient10_run1,jpg) 若filename中不包含路径信息,则imwrite将会将文件保存在 当前目录下。 另一种常用但只适用于JPEG图像的函数是imwrite,其语法为 输入 imwrite(f,filename.jpg,quality,q) 其中,q是一个在0到100的整数(由于JPEG压缩,q越小, 图像的退化就越严重)。 1.2.4不改变像素值的情况下改变图片的大小 使用imwrite的参数 已知原图像f分辨率是128dpi,图像大小事512*512, 尺寸为4.0*4.0英寸,我们希望把原图像缩小成为 2*2英寸,但像素值保持512*512。 Imwrite( f,A_2.jpg,compression,none,resolution,102410 24) res=round(512*4/2)=1024 1.2.5 图像类型 1 亮度图像 2 二值图像 3 索引图像 4 RGB图像 1.3 矩阵索引 大小512*512uint8类亮度图像f 输入fp=f(end:-1:1,:),imshow(fp) 图像翻转180 其中-1代表的长度负号 代表的是方向,1和 end代表的是输出 图像长度是和源图 像等长,最后一个 冒号(:)代表的 意思是举例如下: A= 1 2 3 4 5 6 B= 7 8 9 A(1,:)=B 则A= 7 8 9 4 5 6 输入fc=f(129:384, 129:384); imshow(fc) 是指取原图像的像素区间在 129,384区段上的图像,fc的 图像的实际大小只相当于原图 像的1/4倍 这是在dpi(单位英寸内像素值) 不变的情况下图片的大小发 生变化的同时只能看见原图像 的局部。 fs=f(1:2:end, 1:2:end); imshow(fs) 1:2:end 代表的意思是 即原图像的长 宽为512,用 如上语句对图 像进行了二次 取样,长度为2 ,取样时每隔 一个像素取一 次,所以取样 后的图像大小 为256*256 输入plot(f(256,:); 所表达的意思是原图像中部的一条水平扫描线。 第2章 亮度变换和空间卷积 2.1 亮度变换 2.1.1亮度变换函数 2.1.2 对数与对比度变换拉伸 2.2 空间卷积 2.1 亮度变换 2.1 亮度变换 表达式: g(x,y)=Tf(x,y) 其中f(x,y)是输入图像,g(x,y)是处理后的图像,T是 对f经行处理的操作符,其定义在(x,y)的邻域。 亮度变换函数s=T(r) 其中r是图像f相应点(x,y)是亮度,s表示图像g相 应点(x,y)是亮度. 函数imadjust:是灰度图像进行亮度变换的基本IPT 工具。其语法为: g=imadjust(f,low_in high_in,low_out high_out,gamma) 此函数将图像f中的亮度值映像到g中的新值,即将low_in high_in之间的值映射到 low_out high_out之间的值。Low_in以下与high_in以上的值则被剪切掉,函数imadjust的 所有输入输出均指定在0到1之间,已知f是uint8类图像,则函数imadjust将乘以255来确 定应用中的实际值,若high_out小于low_out,则输出亮度会反转。 参数gamma指定了曲线的形状,该曲线用来映射f的亮度值,以 便生成图像g。若gamma小于1,则映射被加权至更高更亮的输出值,若 gamma大于1,则映射被加权至更低更暗的输出值。若省略函数的参量, 则gamma默认为1. g1=imadjust(f,0 1,1 0); g2=imadjust(f,0.5 0.75,0 1) imshow(g1) imshow(g2) 或者g=imcomplement(f) 左边的图像是明暗反转,可用于医学上显示病患的所在位置,右边的图像 将0.5到0.75的灰度级扩展到0到1之间,为了刚好的突出我们感兴趣的亮 度带。 g3=imadjust(f,10) imshow(g3) 表达的意思是在 gamma值等于10是输 入和输出都默认在 ( 默认在0,1之间),这 样做的相比g2优势在 于更加的压缩的灰度 级的低端同事扩展了 灰度级的高端。 2.1.2对数和对比度拉伸变换 对数与对比度拉伸变换是进行动态范围处理的基本工具 ,对数变换通过如下表达式实现: g=c*log(1+double(f) 其中,c是常数,该变换低值是0,高值是1.对数函 数的形状是固定的,而gamma曲线的形状是可变的。 对数变换的主要的应用是压缩动态范围, 当执行一个 对数变换时,我们通常期望将导致的压缩值还原为显示 的全范围,如: gs=im2uint8(mat2gray(g); 使用函数mat2gray可将值限定在0,1内,使用函数 im2uint8可将值限定在范围0,255内。 A所示的函数形式为 s=T(r)=1/(1+(m/r)E) r表示输入函数的的亮度,s表示输出函数的亮度值,E控制该 函数的斜率,在matlab中,该式由如下语句对整幅图像完成操 作: g=1/(1+(m/(double(f)+eps)E) eps可以避免f出现0值时时的溢出现象。输出值被缩放在范围 0,1内。 输入g=im2uint8(mat2gray(log(1+double(f) imshow(g) 原图像 执行对数变换后的结果 2.2 空间卷积 数学中关于两个函数的一种无穷积分运算,是通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f 经过翻转和 平移与g 的重叠部分的累积。 线性空间滤波又称为空间卷积 在执行线性空间滤波时,我们必须理解两个相关的含义,相关 和卷积。相关是掩膜w在下图1图像f中移动的过程。卷积是相 同的过程,只是在图像f中移动w前,要将w旋转180。 图1 图2 图3 图4 工具箱使用函数imfilter来实现空间卷积 g=imfilt(f,w, filtering_mode, boundary_opions,size_options) 如图3所示,f为输入图像,w为滤波掩膜,其他参数见图4. 函数imfilter的通用算法为 g=imfilter(f, w ,replicate) 取一幅double类的图像f,大小为512*512像素,再取一个大小为31*31的 简单滤波器w 输入 w=ones(31) 使用默认0填充imfilter函数的结果 原图像 输入:fd=imfilter(f,w ) imshow(fd) 使用replicate对外边界的值来扩展 使用symmetric通过 镜像来扩展 fr=imfilter(f,w,replicate);fs=imfilter(f,w,symmetric) ; 通过将图像看成一个二维周期函数的 将原图像转换为uint8类图像然后 一个周期来扩展边界来扩展 再通过replicate复制外 边界来扩展 fc=imfilter(f,w,circular); figure, imshow(fc,); f8=im2uint8(f) ; f8r=imfilter(f8,w,replicate); imshow(f8r) visual studio中有关于卷积的应用 static void _convolveImageHoriz( _KLT_FloatImage imgin, ConvolutionKernel kernel, _KLT_FloatImage imgout) float *ptrrow = imgin-data; /* Points to rows first pixel */ register float *ptrout = imgout-data, /* Points to next output pixel */ *ppp; register float sum; register int radius = kernel.width / 2; register int ncols = imgin-ncols, nrows = imgin- nrows; register int i, j, k; /* Kernel width must be odd */ assert(kernel.width % 2 = 1); /* Must read from and write to different images */ assert(imgin != imgout); /* Output image must be large enough to hold result */ a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论