如何对一个二维数组做高通滤波算法处理

有时想起 2018-03-13 03:37:46
RT,求解。。。。。。。。。。
...全文
774 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2018-03-14
  • 打赏
  • 举报
回复
你去看一下 最小二乘法曲面拟合 有了理论依据,你的计算结果才能被人接受
有时想起 2018-03-14
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
[quote=引用 5 楼 u011672494 的回复:] 这样的话 相当于本来的数据点画出来的图像是一个曲面,经过滤波后的数据应该就去掉了曲面,变成了平面,然后就可进行下一步计算了。
你这个算法思想有理论证明吗?据我所知高通滤波是突出细节,而低通滤波才是平滑细节 如果真的将曲面变成了平面,那又怎么计算呢?不理解[/quote] 没有理论证明,,是自己想的。。(检测被测面粗糙度,现在能测量出被测面的二维高度数据,然后我的做法 先高通滤波 突出细节,那么如果测量的是一个曲面的话,曲面上坑坑洼洼的细节将被突出,而宏观看整个曲面就会近似去掉,拉平了。 然后我找滤波后数据的平均值作为基准,滤波后每个点的值跟基准值偏差求和作为一个粗糙度的表示量)
xuzuning 2018-03-14
  • 打赏
  • 举报
回复
引用 5 楼 u011672494 的回复:
这样的话 相当于本来的数据点画出来的图像是一个曲面,经过滤波后的数据应该就去掉了曲面,变成了平面,然后就可进行下一步计算了。
你这个算法思想有理论证明吗?据我所知高通滤波是突出细节,而低通滤波才是平滑细节 如果真的将曲面变成了平面,那又怎么计算呢?不理解
有时想起 2018-03-14
  • 打赏
  • 举报
回复
这样的话 相当于本来的数据点画出来的图像是一个曲面,经过滤波后的数据应该就去掉了曲面,变成了平面,然后就可进行下一步计算了。
有时想起 2018-03-14
  • 打赏
  • 举报
回复
引用 2 楼 bloodish 的回复:
问题太笼统了。 你的二维数据是FFT谱数据? 第一维和第二维分别是什么?复数的实部,虚部? 最基本的高通滤波算法需要知道一个截止频率,并要根据这个参数算斜率等一系列操作。 算法不复杂,但跟输入数据和参数相关。
是这样的 ,数据是扫描到的高度数据,是一个960*600的二维数组,表示的是960*600像素区域内的高度值,现在要做这个区域内的粗糙度算法,因此我想先把这些数据做一个二维面上的高通滤波。
bloodish 2018-03-13
  • 打赏
  • 举报
回复
问题太笼统了。 你的二维数据是FFT谱数据? 第一维和第二维分别是什么?复数的实部,虚部? 最基本的高通滤波算法需要知道一个截止频率,并要根据这个参数算斜率等一系列操作。 算法不复杂,但跟输入数据和参数相关。
wanghui0380 2018-03-13
  • 打赏
  • 举报
回复
这你的自己抛砖先,我们不知道怎么回答。 如果说高通滤波算法,专业领域上属于信号处理方面,涉及开窗,窗口处理,频域变换(快速傅里叶/小波),滤波器设计等 我们可不知道你到底要什么。也许你只是简单想把每个点比个大小呢??这个谁知道
有时想起 2018-03-13
  • 打赏
  • 举报
回复
坐等啊==。。。。。。。
本书是数字图像处理经典著作,作者在对32个国家的134个院校和研究所的教师,学生及自学者进行广泛调查的基础上编写了第三版。除保留了第二版的大部分主要内容外,还根据收集的建议从13个方面进行了修订,新增400多幅图像,200多个图表和80多道习题,同时融入了来本科学领域的重要发展,使本书具有相当的特色与先进性。全书分为12章,包括绪论,数字图像基础,灰度变换与空间滤波,频域滤波,图像复原与重建,彩色图像处理,小波及多分辨率处理,图像压缩,形态学图像处理,图像分割,表现与描述,目标识别。 目录编辑 前言15 致谢19 书籍网站20 关于作者21 第1章引言23 1.1什么是数字图像处理?23 1.2数字图像处理的起源25 1.3使用数字图像处理的字段示例29 1.3.1伽马射线成像30 1.3.2 X射线成像31 1.3.3紫外线带成像33 1.3.4可见光和红外波段成像34 1.3.5微波波段40成像 [1] 1.3.6无线电频段的成像42 1.3.7使用其他成像模式的示例42 1.4数字图像处理的基本步骤47 1.5图像处理系统的组件50 摘要53 参考文献和进一步阅读53 第2章数字图像基础知识57 2.1视觉感知的要素58 2.1.1人眼结构58 2.1.2眼睛中的图像形成60 2.1.3亮度适应和歧视61 2.2光和电磁谱65 2.3图像传感和采集68 2.3.1使用单个传感器进行图像采集70 2.3.2使用传感器条带获取图像70 2.3.3使用传感器阵列进行图像采集72 2.3.4简单的图像形成模型72 2.4图像采样和量化74 2.4.1采样和量化的基本概念74 2.4.2代表数字图像77 2.4.3空间和强度分辨率81 2.4.4图像插值87 2.5像素之间的一些基本关系90 2.5.1像素的邻居90 2.5.2邻接,连通性,区域和边界90 [1] 2.5.3距离措施93 2.6数字图像处理中使用的数学工具简介94 2.6.1数组与矩阵运算94 2.6.2线性与非线性操作95 2.6.3算术运算96 2.6.4设置和逻辑操作102 2.6.5空间操作107 2.6.6矢量和矩阵运算114 2.6.7图像变换115 2.6.8概率方法118 [1] 摘要120 参考文献和进一步阅读120 问题121 第3章强度变换和空间过滤126 3.1背景127 3.1.1强度变换和空间滤波的基础127 3.1.2关于本章中的示例129 3.2一些基本的强度转换函数129 3.2.1图像底片130 3。2。2日志转换131 3.2.3幂律(Gamma)变换132 3.2.4分段线性变换函数137 3.3直方图处理142 3.3.1直方图均衡144 3.3.2直方图匹配(规范)150 3.3.3局部直方图处理161 3.3.4使用直方图统计进行图像增强161 3.4空间过滤的基本原理166 3.4.1空间过滤机制167 3.4.2空间相关和卷积168 3.4.3线性滤波的矢量表示172 3.4.4生成空间滤波器掩码173 3.5平滑空间滤波器174 3.5.1平滑线性滤波器174 3.5.2订单统计(非线性)过滤器178 3.6锐化空间滤波器179 3.6.1基金会180 3.6.2使用二阶导数进行图像锐化 - 拉普拉斯算子182 3.6.3反锐化掩码和高增强滤波184 3.6.4使用一阶导数(非线性)图像锐化 - 梯度187 3.7组合空间增强方法191 [1] 3.8使用模糊技术进行强度变换和空间过滤195 3.8.1引言195 3.8.2模糊集理论的原理196 3.8.3使用模糊集200 3.8.4使用模糊集进行强度变换208 3.8.5使用模糊集进行空间过滤211 摘要214 参考文献和进一步阅读214 问题215 第4章频域滤波221 4.1背景222 4.1.1傅立叶级数和变换的简史222 4.1.2关于本章中的示例223 4.2初步概念224 [1] 4.2.1复数224 4.2.2傅立叶级数225 4.2.3冲动及其筛选性能225 4.2.4一个连续变量函数的傅立叶变换227 4.2.5卷积231 4.3采样和采样函数的傅立叶变换233 4.3.1抽样233 4.3.2采样函数的傅立叶变换234 4.3.3抽样定理235 4.3.4别名239 4.3.5采样数据的功能重建(恢复)241 4.4单变量的离散傅里叶变换(DFT)242 4.4.1从采样函数的连续变换中获取DFT 243 4.4.2采样和频率间隔之间的关系245 4.5扩展到两个变量的函数247 4.5.1二维脉冲及其筛选性质247 4.5.2二维连续傅立叶变换对248 [1] 4.5.3二维采样和二维采样定理249 4.5.4图像中的别名250 4.5.5二维离散傅里叶变换及其逆257 4.6二维离散傅立叶变换的一些性质258 4.6.1空间和频率间隔之间的关系258 4.6.2翻译和轮换258 4.6.3周期259 4.6.4对称性属性261 4.6.5傅里叶谱和相角267 4.6.6二维卷积定理271 4.6.7二维离散傅立叶变换特性总结275 4.7频域滤波的基础277 4.7.1频域的附加特性277 4.7.2频域滤波基础279 4.7.3频域滤波步骤摘要285 4.7.4空域和频域过滤之间的对应关系285 4.8使用频域滤波器进行图像平滑291 4.8.1理想的低通滤波器291 4.8.2巴特沃斯低通滤波器295 [1] 4.8.3高斯低通滤波器298 4.8.4低通滤波的其他例子299 4.9使用频域滤波器的图像锐化302 4.9.1理想的高通滤波器303 4.9.2巴特沃斯高通滤波器306 4.9.3高斯高通滤波器307 4.9.4频域308中的拉普拉斯算子 4.9.5反锐化掩模,高增强滤波和高频强调滤波310 4.9.6同态过滤311 4.10选择性过滤316 4.10.1带通和带通滤波器316 4.10.2陷波滤波器316 4.11实施320 4.11.1二维DFT 320的可分离性 4.11.2使用DFT算法计算IDFT 321 [1] 4.11.3快速傅里叶变换(FFT)321 4.11.4关于过滤器设计的一些评论325 摘要325 参考文献和进一步阅读326 问题326 第5章图像恢复和重建333 5.1图像降级/恢复过程的模型334 5.2噪声模型335 5.2.1噪声的空间和频率特性335 5.2.2一些重要的噪声概率密度函数336 5.2.3周期性噪声340 5.2.4噪声参数估算341 5.3仅存在噪声的情况下的恢复 - 空间过滤344 5.3.1平均滤波器344 5.3.2订单统计过滤器347 5.3.3自适应滤波器352 5.4通过频域滤波定期降低噪声357 5.4.1带状过滤器357 [1] 5.4.2带通滤波器358 5.4.3陷波滤波器359 5.4.4最佳陷波滤波360 5.5线性,位置不变的降级365 5.6估算退化函数368 5.6.1通过图像观察估计368 5.6.2通过实验估算369 5.6.3通过建模估算369 5.7反向过滤373 5.8最小均方误差(维纳)滤波374 5.9约束最小二乘滤波379 5.10几何平均滤波器383 5.11从投影中重建图像384 5.11.1引言384 5.11.2计算机断层扫描原理(CT)387 5.11.3投影和Radon变换390 5.11.4傅立叶切片定理396 5.11.5使用平行光束滤波反投影重建397 5.11.6使用扇束滤波反投影进行重建403 摘要409
数字图像处理方面的经典教材,中文译本 阮秋琦,阮宇智等译 本书是把图像处理基础理论论述与软件实践方法相结合的第一本书,它集成了冈萨雷斯和伍兹所著的《数字图像处理》一书中的重要内容和MathWorks公司的图像处理工具箱。本书的特色在于它重点强调了怎样通过开发新代码来增强这些软件工具。本书在介绍MATLAB编程基础知识之后,讲述了图像处理的主要内容,具体包括亮度变换、线性和非线性空间滤波、频率域滤波、图像复原与配准、彩色图像处理、小波、图像数据压缩、形态学图像处理、图像分割、区域和边界表示与描述以及对象识别等。 本书概念清晰,层次分明,可供从事信号与信息处理、计算机科学与技术、通信工程、地球物理、医学等专业的大专院校师生学习参考,也可供相应的工程技术人员参考使用。 本书概念清晰,层次分明,可供从事信号与信息处理、计算机科学与技术、通信工程、地球物理、医学等专业的大专院校师生学习参考,也可供相应的工程技术人员参考使用。 第1章 绪言  前言  1.1 背景知识  1.2 什么是数字图像处理  1.3 MATLAB和图像处理工具箱的背景知识  1.4 本书涵盖的图像处理范围  1.5 本书的Web站点  1.6 MATLAB工作环境   1.6.1 MATLAB桌面   1.6.2 使用MATLAB编辑器创建M文件   1.6.3 获得帮助   1.6.4 保存和检索工作会话  1.7 参考文献的组织方式  小结 第2章 基本原理  前言  2.1 数字图像的表示   2.1.1 坐标约定   2.1.2 图像的矩阵表示  2.2 读取图像  2.3 显示图像  2.4 保存图像  2.5 数据类  2.6 图像类型   2.6.1 亮度图像   2.6.2 二值图像   2.6.3 术语注释  2.7 数据类与图像类型间的转换   2.7.1 数据类间的转换   2.7.2 图像类和类型间的转换  2.8 数组索引   2.8.1 向量索引   2.8.2 矩阵索引   2.8.3 选择数组的维数  2.9 一些重要的标准数组  2.10 M函数编程简介   2.10.1 M文件   2.10.2 运算符   2.10.3 流控制   2.10.4 代码优化   2.10.5 交互式I/O   2.10.6 单元数组与结构简介  小结 第3章 亮度变换与空间滤波  前言  3.1 背景知识  3.2 亮度变换函数   3.2.1 函数imadjust   3.2.2 对数和对比度拉伸变换   3.2.3 亮度变换的一些实用M函数  3.3 直方图处理与函数绘图   3.3.1 生成并绘制图像的直方图   3.3.2 直方图均衡化   3.3.3 直方图匹配(规定化)  3.4 空间滤波   3.4.1 线性空间滤波   3.4.2 非线性空间滤波  3.5 图像处理工具箱的标准空间滤波器   3.5.1 线性空间滤波器   3.5.2 非线性空间滤波器  小结 第4章 频域处理  前言  4.1 二维离散傅里叶变换  4.2 在MATLAB中计算并可视化二维DFT  4.3 频域滤波   4.3.1 基本概念   4.3.2 DFT滤波的基本步骤   4.3.3 用于频域滤波的M函数  4.4 从空间滤波器获得频域滤波器  4.5 在频域中直接生成滤波器   4.5.1 建立用于实现频域滤波器的网格数组   4.5.2 低通频域滤波器   4.5.3 线框图与表面图  4.6 锐化频域滤波器   4.6.1 基本的高通滤波器   4.6.2 高频强调滤波  小结 第5章 图像复原  前言  5.1 图像退化/复原处理的模型  5.2 噪声模型   5.2.1 使用函数imnoise添加噪声   5.2.2 使用指定的分布产生空间随机噪声   5.2.3 周期噪声   5.2.4 估计噪声参数  5.3 仅有噪声的复原:空间滤波   5.3.1 空间噪声滤波器   5.3.2 自适应空间滤波器  5.4 通过频域滤波来降低周期噪声  5.5 退化函数建模  5.6 直接逆滤波  5.7 维纳滤波  5.8 约束的最小二乘方(正则)滤波  5.9 使用Lucy-Richardson算法的迭代非线性复原  5.10 盲去卷积  5.11 几何变换与图像配准   5.11.1 空间几何变换   5.11.2 对图像应用空间变换   5.11.3 图像配准  小结 第6章 彩色图像处理  前言  6.1 MATLAB中彩色图像的表示方法   6.1.1 RGB图像   6.1.2 索引图像   6.1.3 用来处理RGB图像和索引图像的IPT函数  6.2 转换至其他彩色空间   6.2.1 NTSC彩色空间   6.2.2 YCb
1. 直方图均衡化的 Matlab 实现 1.1 imhist 函数 功能:计算和显示图像的色彩直方图 格式:imhist(I,n) imhist(X,map) 说明:imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256;imhist(X,map) 就算和显示索引色图像 X 的直方图,map 为调色板。用 stem(x,counts) 同样可以显示直方图。 1.2 imcontour 函数 功能:显示图像的等灰度值图 格式:imcontour(I,n),imcontour(I,v) 说明:n 为灰度级的个数,v 是有用户指定所选的等灰度级向量。 1.3 imadjust 函数 功能:通过直方图变换调整对比度 格式:J=imadjust(I,[low high],[bottom top],gamma) newmap=imadjust(map,[low high],[bottom top],gamma) 说明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 为校正量r,[low high] 为原图像中要变换的灰度范围,[bottom top] 指定了变换后的灰度范围;newmap=imadjust(map,[low high],[bottom top],gamma) 调整索引色图像的调色板 map 。此时若 [low high] 和 [bottom top] 都为2×3的矩阵,则分别调整 R、G、B 3个分量。 1.4 histeq 函数 功能:直方图均衡化 格式:J=histeq(I,hgram) J=histeq(I,n) [J,T]=histeq(I,...) newmap=histeq(X,map,hgram) newmap=histeq(X,map) [new,T]=histeq(X,...) 说明:J=histeq(I,hgram) 实现了所谓“直方图规定化”,即将原是图象 I 的直方图变换成用户指定的向量 hgram 。hgram 中的每一个元素 都在 [0,1] 中;J=histeq(I,n) 指定均衡化后的灰度级数 n ,缺省值为 64;[J,T]=histeq(I,...) 返回从能将图像 I 的灰度直方图变换成 图像 J 的直方图的变换 T ;newmap=histeq(X,map) 和 [new,T]=histeq(X,...) 是针对索引色图像调色板的直方图均衡。 2. 噪声及其噪声的 Matlab 实现 imnoise 函数 格式:J=imnoise(I,type) J=imnoise(I,type,parameter) 说明:J=imnoise(I,type) 返回对图像 I 添加典型噪声后的有噪图像 J ,参数 type 和 parameter 用于确定噪声的类型和相应的参数。 3. 图像滤波的 Matlab 实现 3.1 conv2 函数 功能:计算二维卷积 格式:C=conv2(A,B) C=conv2(Hcol,Hrow,A) C=conv2(...,'shape') 说明:对于 C=conv2(A,B) ,conv2 的算矩阵 A 和 B 的卷积,若 [Ma,Na]=size(A), [Mb,Nb]=size(B), 则 size(C)=[Ma+Mb-1,Na+Nb-1]; C=conv2(Hcol,Hrow,A) 中,矩阵 A 分别与 Hcol 向量在列方向和 Hrow 向量在行方向上进行卷积;C=conv2(...,'shape') 用来指定 conv2 返回二维卷积结果部分,参数 shape 可取值如下: 》full 为缺省值,返回二维卷积的全部结果; 》same 返回二维卷积结果中与 A 大小相同的中间部分; valid 返回在卷积过程中,未使用边缘补 0 部分进行计算的卷积结果部分,当 size(A)>size(B) 时,size(C)=[Ma-Mb+1,Na-Nb+1] 。 3.2 conv 函数 功能:计算多维卷积 格式:与 conv2 函数相同 3.3 filter2函数 功能:计算二维线型数字滤波,它与函数 fspecial 连用 格式:Y=filter2(B,X) Y=filter2(B,X,'shape') 说明:对于 Y=filter2(B,X) ,filter2 使用矩阵 B 中的二维 FIR 滤波器对数据 X 进行滤波,结果 Y 是通过二维互相关计算出来的,其大 小与 X 一样;对于 Y=filter2(B,X,'shape') ,filter2 返回的 Y 是通过二维互相关计算出来的,其大小由参数 shape 确定,其取值如下 : 》full 返回二维相关的全部结果,size(Y)>size(X); 》same 返回二维互相关结果的中间部分,Y 与 X 大小相同; 》valid 返回在二维互相关过程中,未使用边缘补 0 部分进行计算的结果部分,有 size(Y)一个由 type 指定的二维滤波器 H ,返回的 H 常与其它滤波器搭配使用。 4. 彩色增强的 Matlab 实现 4.1 imfilter函数 功能:真彩色增强 格式:B=imfilter(A,h) 说明:将原始图像 A 按指定的滤波器 h 进行滤波增强处理,增强后的图像 B 与 A 的尺寸和类型相同 图像的变换 1. 离散傅立叶变换的 Matlab 实现 Matlab 函数 fft、fft2 和 fftn 分别可以实现一维、二维和 N 维 DFT 算法;而函数 ifft、ifft2 和 ifftn 则用来计算反 DFT 。 这些函数的调用格式如下: A=fft(X,N,DIM) 其中,X 表示输入图像;N 表示采样间隔点,如果 X 小于该数值,那么 Matlab 将会对 X 进行零填充,否则将进行截取,使之长度为 N ;DIM 表示要进行离散傅立叶变换。 A=fft2(X,MROWS,NCOLS) 其中,MROWS 和 NCOLS 指定对 X 进行零填充后的 X 大小。 A=fftn(X,SIZE) 其中,SIZE 是一个向量,它们每一个元素都将指定 X 相应维进行零填充后的长度。 函数 ifft、ifft2 和 ifftn的调用格式于对应的离散傅立叶变换函数一致。 例子:图像的二维傅立叶频谱 % 读入原始图像 I=imread('lena.bmp'); imshow(I) % 求离散傅立叶频谱 J=fftshift(fft2(I)); figure; imshow(log(abs(J)),[8,10]) 2. 离散余弦变换的 Matlab 实现 2.1. dCT2 函数 功能:二维 DCT 变换 格式:B=dct2(A) B=dct2(A,m,n) B=dct2(A,[m,n]) 说明:B=dct2(A) 计算 A 的 DCT 变换 B ,A 与 B 的大小相同;B=dct2(A,m,n) 和 B=dct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 B 的大 小为 m×n。 2.2. dict2 函数 功能:DCT 反变换 格式:B=idct2(A) B=idct2(A,m,n) B=idct2(A,[m,n]) 说明:B=idct2(A) 计算 A 的 DCT 反变换 B ,A 与 B 的大小相同;B=idct2(A,m,n) 和 B=idct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 B 的大小为 m×n。 2.3. dctmtx函数 功能:计算 DCT 变换矩阵 格式:D=dctmtx(n) 说明:D=dctmtx(n) 返回一个 n×n 的 DCT 变换矩阵,输出矩阵 D 为 double 类型。 3. 图像小波变换的 Matlab 实现 3.1 一维小波变换的 Matlab 实现 (1) dwt 函数 功能:一维离散小波变换 格式:[cA,cD]=dwt(X,'wname') [cA,cD]=dwt(X,Lo_D,Hi_D) 说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname' 对信号 X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。 (2) idwt 函数 功能:一维离散小波反变换 格式:X=idwt(cA,cD,'wname') X=idwt(cA,cD,Lo_R,Hi_R) X=idwt(cA,cD,'wname',L) X=idwt(cA,cD,Lo_R,Hi_R,L) 说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。 'wname' 为所选的小波函数 X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和 Hi_R 经小波反变换重构原始信号 X 。 X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。 3.2 二维小波变换的 Matlab 实现 二维小波变换的函数 ------------------------------------------------- 函数名 函数功能 --------------------------------------------------- dwt2 二维离散小波变换 wavedec2 二维信号的多层小波分解 idwt2 二维离散小波反变换 waverec2 二维信号的多层小波重构 wrcoef2 由多层小波分解重构某一层的分解信号 upcoef2 由多层小波分解重构近似分量或细节分量 detcoef2 提取二维信号小波分解的细节分量 appcoef2 提取二维信号小波分解的近似分量 upwlev2 二维小波分解的单层重构 dwtpet2 二维周期小波变换 idwtper2 二维周期小波反变换 ------------------------------------------------------------- (1) wcodemat 函数 功能:对数据矩阵进行伪彩色编码 格式:Y=wcodemat(X,NB,OPT,ABSOL) Y=wcodemat(X,NB,OPT) Y=wcodemat(X,NB) Y=wcodemat(X) 说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵 Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16; OPT 指定了编码的方式(缺省值为 'mat'),即: OPT='row' ,按行编码 OPT='col' ,按列编码 OPT='mat' ,按整个矩阵编码 ABSOL 是函数的控制参数(缺省值为 '1'),即: ABSOL=0 时,返回编码矩阵 ABSOL=1 时,返回数据矩阵的绝对值 ABS(X) (2) dwt2 函数 功能:二维离散小波变换 格式:[cA,cH,cV,cD]=dwt2(X,'wname') [cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数 'wname' 对二维信号 X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分 量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分 解信号 X 。 (3) wavedec2 函数 功能:二维信号的多层小波分解 格式:[C,S]=wavedec2(X,N,'wname') [C,S]=wavedec2(X,N,Lo_D,Hi_D) 说明:[C,S]=wavedec2(X,N,'wname') 使用小波基函数 'wname' 对二维信号 X 进行 N 层分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D) 使用指定 的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。 (4) idwt2 函数 功能:二维离散小波反变换 格式:X=idwt2(cA,cH,cV,cD,'wname') X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R) X=idwt2(cA,cH,cV,cD,'wname',S) X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S) 说明:X=idwt2(cA,cH,cV,cD,'wname') 由信号小波分解的近似信号 cA 和细节信号 cH、cH、cV、cD 经小波反变换重构原信号 X ;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R) 使用指定的重构低通和高通滤波器 Lo_R 和 Hi_R 重构原信号 X ;X=idwt2(cA,cH,cV,cD,'wname',S) 和 X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S) 返回中心附近的 S 个数据点。 (5) waverec2 函数 说明:二维信号的多层小波重构 格式:X=waverec2(C,S,'wname') X=waverec2(C,S,Lo_R,Hi_R) 说明:X=waverec2(C,S,'wname') 由多层二维小波分解的结果 C、S 重构原始信号 X ,'wname' 为使用的小波基函数;X=waverec2(C,S,Lo_R,Hi_R) 使用重构低通和高通滤波器 Lo_R 和 Hi_R 重构原信号。 图像处理工具箱 1. 图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点 数,所需存储量很大;MATLAB还支持另一种类型无符号整型(uint8),即图像矩 阵中每个数据占用1个字节。 在使用MATLAB工具箱时,一定要注意函数所要求的参数类型。另外,uint8 与double两种类型数据的值域不同,编程需注意值域转换。 从uint8到double的转换 --------------------------------------------- 图像类型 MATLAB语句 --------------------------------------------- 索引色 B=double(A)+1 索引色或真彩色 B=double(A)/255 二值图像 B=double(A) --------------------------------------------- 从double到uint8的转换 --------------------------------------------- 图像类型 MATLAB语句 --------------------------------------------- 索引色 B=uint8(round(A-1)) 索引色或真彩色 B=uint8(round(A*255)) 二值图像 B=logical(uint8(round(A))) --------------------------------------------- 2. 图像处理工具箱所支持的图像类型 2.1 真彩色图像 R、G、B三个分量表示一个像素的颜色。如果要读取图像中(100,50)处的像素值, 可查看三元数据(100,50,1:3)。 真彩色图像可用双精度存储,亮度值范围是[0,1];比较符合习惯的存储方法是用无 符号整型存储,亮度值范围[0,255] 2.2 索引色图像 包含两个结构,一个是调色板,另一个是图像数据矩阵。调色板是一个有3列和若干行 的色彩映象矩阵,矩阵每行代表一种颜色,3列分别代表红、绿、蓝色强度的双精度数。 注意:MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮。 常用颜色的RGB值 -------------------------------------------- 颜色 R G B 颜色 R G B -------------------------------------------- 黑 0 0 1 洋红 1 0 1 白 1 1 1 青蓝 0 1 1 红 1 0 0 天蓝 0.67 0 1 绿 0 1 0 橘黄 1 0.5 0 蓝 0 0 1 深红 0.5 0 0 黄 1 1 0 灰 0.5 0.5 0.5 -------------------------------------------- 产生标准调色板的函数 ------------------------------------------------- 函数名 调色板 ------------------------------------------------- Hsv 色彩饱和度,以红色开始,并以红色结束 Hot 黑色-红色-黄色-白色 Cool 青蓝和洋红的色度 Pink 粉红的色度 Gray 线型灰度 Bone 带蓝色的灰度 Jet Hsv的一种变形,以蓝色开始,以蓝色结束 Copper 线型铜色度 Prim 三棱镜,交替为红、橘黄、黄、绿和天蓝 Flag 交替为红、白、蓝和黑 -------------------------------------------------- 缺省情况下,调用上述函数灰产生一个64×3的调色板,用户也可指定调色板大小。 索引色图像数据也有double和uint8两种类型。 当图像数据为double类型时,值1代表调色板中的第1行,值2代表第2行…… 如果图像数据为uint8类型,0代表调色板的第一行,,值1代表第2行…… 2.3 灰度图像 存储灰度图像只需要一个数据矩阵。 数据类型可以是double,[0,1];也可以是uint8,[0,255] 2.4 二值图像 二值图像只需一个数据矩阵,每个像素只有两个灰度值,可以采用uint8或double类型存储。 MATLAB工具箱中以二值图像作为返回结果的函数都使用uint8类型。 2.5 图像序列 MATLAB工具箱支持将多帧图像连接成图像序列。 图像序列是一个4维数组,图像帧的序号在图像的长、宽、颜色深度之后构成第4维。 分散的图像也可以合并成图像序列,前提是各图像尺寸必须相同,若是索引色图像, 调色板也必须相同。 可参考cat()函数 A=cat(4,A1,A2,A3,A4,A5) 3. MATLAB图像类型转换 图像类型转换函数 --------------------------------------------------------------------------- 函数名 函数功能 --------------------------------------------------------------------------- dither 图像抖动,将灰度图变成二值图,或将真彩色图像抖动成索引色图像 gray2ind 将灰度图像转换成索引图像 grayslice 通过设定阈值将灰度图像转换成索引色图像 im2bw 通过设定亮度阈值将真彩色、索引色、灰度图转换成二值图 ind2gray 将索引色图像转换成灰度图像 ind2rgb 将索引色图像转换成真彩色图像 mat2gray 将一个数据矩阵转换成一副灰度图 rgb2gray 将一副真彩色图像转换成灰度图像 rgb2ind 将真彩色图像转换成索引色图像 ---------------------------------------------------------------------------- 4. 图像文件的读写和查询 4.1 图形图像文件的读取 利用函数imread()可完成图形图像文件的读取,语法: A=imread(filename,fmt) [X,map]=imread(filename,fmt) [...]=imread(filename) [...]=imread(filename,idx) (只对TIF格式的文件) [...]=imread(filename,ref) (只对HDF格式的文件) 通常,读取的大多数图像均为8bit,当这些图像加载到内存中时,Matlab就将其存放 在类uint8中。此为Matlab还支持16bit的PNG和TIF图像,当读取这类文件时,Matlab就将 其存贮在uint16中。 注意:对于索引图像,即使图像阵列的本身为类uint8或类uint16,imread函数仍将 颜色映象表读取并存贮到一个双精度的浮点类型的阵列中。 4.2 图形图像文件的写入 使用imwrite函数,语法如下: imwrite(A,filename,fmt) imwrite(X,map,filename,fmt) imwrite(...,filename) imwrite(...,parameter,value) 当利用imwrite函数保存图像时,Matlab缺省的方式是将其简化道uint8的数据格式。 4.3 图形图像文件信息的查询 imfinfo()函数 5. 图像文件的显示 5.1 索引图像及其显示 方法一: image(X) colormap(map) 方法二: imshow(X,map) 5.2 灰度图像及其显示 Matlab 7.0 中,要显示一副灰度图像,可以调用函数 imshow 或 imagesc (即 imagescale,图像缩放函数) (1) imshow 函数显示灰度图像 使用 imshow(I) 或 使用明确指定的灰度级书目:imshow(I,32) 由于Matlab自动对灰度图像进行标度以适合调色板的范围,因而可以使用自定义 大小的调色板。其调用格式如下: imshow(I,[low,high]) 其中,low 和 high 分别为数据数组的最小值和最大值。 (2) imagesc 函数显示灰度图像 下面的代码是具有两个输入参数的 imagesc 函数显示一副灰度图像 imagesc(1,[0,1]); colormap(gray); imagesc 函数中的第二个参数确定灰度范围。灰度范围中的第一个值(通常是0), 对应于颜色映象表中的第一个值(颜色),第二个值(通常是1)则对应与颜色映象表 中的最后一个值(颜色)。灰度范围中间的值则线型对应与颜色映象表中剩余的值(颜色)。 在调用 imagesc 函数时,若只使用一个参数,可以用任意灰度范围显示图像。在该 调用方式下,数据矩阵中的最小值对应于颜色映象表中的第一个颜色值,数据矩阵中的最大 值对应于颜色映象表中的最后一个颜色值。 5.3 RGB 图像及其显示 (1) image(RGB) 不管RGB图像的类型是double浮点型,还是 uint8 或 uint16 无符号整数型,Matlab都 能通过 image 函数将其正确显示出来。 RGB8 = uint8(round(RGB64×255)); % 将 double 浮点型转换为 uint8 无符号整型 RGB64 = double(RGB8)/255; % 将 uint8 无符号整型转换为 double 浮点型 RGB16 = uint16(round(RGB64×65535)); % 将 double 浮点型转换为 uint16 无符号整型 RGB64 = double(RGB16)/65535; % 将 uint16 无符号整型转换为 double 浮点型 (2) imshow(RGB) 参数是一个 m×n×3 的数组 5.4 二进制图像及其显示 (1) imshow(BW) 在 Matlab 7.0 中,二进制图像是一个逻辑类,仅包括 0 和 1 两个数值。像素 0 显示 为黑色,像素 1 显示为白色。 显示时,也可通过NOT(~)命令,对二进制图象进行取反,使数值 0 显示为白色;1 显示 为黑色。 例如: imshow(~BW) (2) 此外,还可以使用一个调色板显示一副二进制图像。如果图形是 uint8 数据类型, 则数值 0 显示为调色板的第一个颜色,数值 1 显示为第二个颜色。 例如: imshow(BW,[1 0 0;0 0 1]) 5.5 直接从磁盘显示图像 可使用一下命令直接进行图像文件的显示: imshow filename 其中,filename 为要显示的图像文件的文件名。 如果图像是多帧的,那么 imshow 将仅显示第一帧。但需注意,在使用这种方式时,图像 数据没有保存在Matlab 7.0 工作平台。如果希望将图像装入工作台中,需使用 getimage 函 数,从当前的句柄图形图像对象中获取图像数据, 命令形式为: rgb = getimage; bwlabel 功能: 标注二进制图像中已连接的部分。 L = bwlabel(BW,n) [L,num] = bwlabel(BW,n) isbw 功能: 判断是否为二进制图像。 语法: flag = isbw(A) 相关命令: isind, isgray, isrgb 74.isgray 功能: 判断是否为灰度图像。 语法: flag = isgray(A) 相关命令: isbw, isind, isrgb 11.bwselect 功能: 在二进制图像中选择对象。 语法: BW2 = bwselect(BW1,c,r,n) BW2 = bwselect(BW1,n) [BW2,idx] = bwselect(...) 举例 BW1 = imread('text.tif'); c = [16 90 144]; r = [85 197 247]; BW2 = bwselect(BW1,c,r,4); imshow(BW1) figure, imshow(BW2) 47.im2bw 功能: 转换图像为二进制图像。 语法: BW = im2bw(I,level) BW = im2bw(X,map,level) BW = im2bw(RGB,level) 举例 load trees BW = im2bw(X,map,0.4); imshow(X,map)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧