小波变换的C++实现
来源:互联网 发布:播放视频文件修复软件 编辑:程序博客网 时间:2024/05/22 12:47
</pre><pre name="code" class="cpp"><p><span style="font-family:KaiTi_GB2312;font-size:14px;">看完小波变换的理论后想实现一线,同时发现opencv中并没有小波变换的函数(还是新版的有了,我不知道啊,please give Me a feedback if U guy know)</span></p><p>...............省略线。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。</p><p>int N = 16;</p>//该部分首先将图划分为16*16的block区域//在每一个循环当中,在每一次循环的所有的操作中,都表示在一个block的操作//其中包括一次小波变换得到四个区域//一次空间Spatial Energy计算,将每个Block的能量块保存到EnergyBlock([8,8]大小)中//并且将这些能量块的数值保存为vector作为SVM的训练样本for (int x=0;x<inputImage.rows;x+=N){Mat ROIBlock = inputImage(Range(x,x+N),Range(x,x+N));//小波变换://waveletblockLH为LH列变换后的结果//waveletblock为waveletblock的LH行变换的结果Mat WaveletBlockLH=Mat::zeros(16, 16, ROIBlock.type());Mat WaveletBlock=Mat::zeros(16, 16, ROIBlock.type());Mat EnergyBlock = Mat::zeros(8,8,ROIBlock.type());//计算for (int i=0,j=0;j<ROIBlock.cols;i+=2,j++){//判断是否为前八列,如果成立则//j=.i+.(i+1)//否则:j=.(i-8)-.(i+1-8)if (floor(j / 8) == 0){WaveletBlockLH.col(j) = ROIBlock.col(i) + ROIBlock.col(i + 1);}elseWaveletBlockLH.col(j)=ROIBlock.col(i-N)-ROIBlock.col(i-N+1);}for (int i = 0,j = 0; j<WaveletBlockLH.rows; i += 2, j++){//判断是否为前八列,如果成立则//j=.i+.(i+1)//否则:j=.(i-8)-.(i+1-8)if (floor(j / 8) == 0){WaveletBlock.row(j) = WaveletBlockLH.row(i) + WaveletBlockLH.row(i + 1);}elseWaveletBlock.row(j) = WaveletBlockLH.row(i - N) - WaveletBlockLH.row(i - N+1);}
0 0
- Haar小波变换的快速实现
- 小波变换的C++实现
- 图像小波变换的matlab实现
- 基于opencv的小波变换的实现代码
- Hough变换的C实现
- 有感于搞定小波变换的Java实现
- MATLAB实现基于小波变换的车牌定位
- 连续小波变换、离散小波变换、二进小波变换、离散序列的小波变换、小波包
- 图像的小波变换
- 小波变换的相关
- 图像的小波变换
- 小波变换的理解
- 小波变换 C++ opencv 实现
- 小波变换 C++ opencv 实现
- Opencv实现离散小波变换小结
- Haar小波变换代码实现
- Opencv实现离散小波变换小结
- 小波变换工程实现原理总结
- android自定义控件-瀑布流
- 中缀转后缀
- pyftpdlib and RFC
- Java -- Map遍历及各方法性能分析
- Android 调用百度识图工具
- 小波变换的C++实现
- 互联网思维到底是什么?
- 正则表达式
- html笔记
- php yii框架 post csrf
- 根据【开始】【结束日期】查询数据库数据
- 抓取的图片的URL中有中文字的问题
- Android:onNewIntent()触发机制及注意事项
- unsigned char拼接