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

下载本文档

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

文档简介

1、数字图像处理(数字图像处理(matlabmatlab版)版)第一章 基本原理第二章 亮度变换和空间卷积MATLAB的定义MATLAB是矩阵实验室(Matrix Laboratory)的简称,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。数字图像处理matlab:利用MATLAB图像处理工具箱进行数字图像处理的设计与应用,Matlab是标准的计算工具,图像处理工具箱是一个matlab函数集,它扩展了matlab解决图像处理问题的能力。第1章 基本原理1.1常用的运算符和数据及图像类函数1.2读取和显示图像及保存图像1.3矩阵索引 1.1常用的运算符和数据及图像类函

2、数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 bytesPs:当用imshow显示另一幅图像g时,MATLAB会在屏幕上用新图像替换旧图像并同时显示第二幅图像,可以使

3、用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: Sequentia

4、l 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将会将文件保存在 当前目录下。 另一种常用但只适用于

5、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,10241024)res=round(512*4/2)=10241.2.5 图像类型1

6、亮度图像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 6B= 7 8 9A(1,:)=B 则A= 7 8 9 4 5 6输入fc=f(129:384, 129:384); imshow(fc)是指取原图像的像素区间在129,384区段上的图像,fc的图像的实际大小只相当于原图像的1/4倍这是在dpi(单位英寸内像素值) 不变的情

7、况下图片的大小发生变化的同时只能看见原图像的局部。 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是

8、对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类图像,则函数imadj

9、ust将乘以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的灰度级扩展到

10、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曲线的形状是可变的。 对数变换的主要的应用是压缩动态范围, 当执行一个对数变换时,我们通常期望将导致的压缩值还原为显示的全

11、范围,如: 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) 原图像原图像 执行对数变换后的结果

12、执行对数变换后的结果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为滤波掩膜,其

13、他参数见图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类图

14、像然后一个周期来扩展边界来扩展 再通过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; /

15、* 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); /* Outputimage must be large enough to hold result */ assert(imgout-ncols = imgin-ncols); assert(imgout-nrows = imgin-nrows); /* For each row, do . */ for (j = 0 ; j nrows ; j+) /* Zero lef

温馨提示

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

评论

0/150

提交评论