怎么把小波变换分成低频和高频部分,单独进行处理,高人指教,在线等,所有积分送上。。。

(C语言)opencv中怎么把小波变换分成低频和高频部分,单独进行处理,高人指教程序,在线等,所有积分送上。。。

没具体做过,不过按照你的意图,应该就是使用mallat算法的离散小波变换(DWT),在matlab中有现成的函数很易实现。
如果你非要用C,那么需要C下解决以下几点:
1.信号处理中卷积的C程序实现;

2.当实现了卷积计算的C代码,你需要得到某个小波函数对应的高频(带通)和低通分解和重构滤波器组,这可以在matlab的wfilters函数和帮助中得到详细的滤波器系数;

3.以上两个问题都解决了,那么直接对信号用滤波器进行卷积再去掉结果越一半的数据即可得到DWT的高频细节和低频逼近系数,用这些系数补零插值再卷积一次就得到了高频细节和低频逼近的重构信号(这就是你要的高频和低频的两个单独部分,然后你想咋处理就咋处理)。对于多层的DWT你只要对小波系数逐层减半即可实现DWT每层尺度伸长一倍的效果。

4.这时你会碰到卷积滤波的边缘效应,你需要对原始信号进行扩展,你可以参看matlab中dwtmode函数的帮助文档;

5.对于二维DWT,你还要实现张量积C代码的实现,还有二维离散采样(行抽取,列抽取和斜抽取)的C代码(在dwt2函数的帮助文档中有详细的流程图)。

由于matlab函数通常是用C语言编制的,而且每个函数都可查询原始代码,如果你有一定的水平,可以试试。不过你这问题需要较为深入的小波分析,信号处理和数学理论的支持,能不能编出象样的C程序就不知道。这问题matlab很容易就解决了,可非要用C,这就是一个比较大的工程了,一个人要花费好长时间还不一定编的成,光数学理论就伤不起啊,技术问题就更别提了!到现在为止也没见有啥象样的小波C程序,你搜搜试试吧。能想到的就这么多了,水平有限,仅供参考,Good luck!追问

那你有小波变换的Matlab程序吗 能通的 分成四个高低成分的 他和C兼容吗?

谢谢大神,你那有程序吗? 求指教?

追答

Matlab的程序遍地都是,搜搜吧,跟C当然不兼容,不知道啥环境可以调用,可以试试。“分成四个高低成分的”不知啥意思?

追问

你能帮忙吗 能给点源码代码什么的吗 ?不胜感激! 我目前用opencv+vs,c/c++语言,!如果你没有 给点MATLAB也可以

温馨提示:答案为网友推荐,仅供参考
相似回答