小波变换 C++

				版权声明:本文为博主原创文章,转载时请注明来源。有问题请e-mail:mr.baishu@gmail.com					https://blog.csdn.net/u011177305/article/details/51313718				</div>
							<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
							            <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
					<div class="htmledit_views" id="content_views">

 
 
  1. </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区域
  2. //在每一个循环当中,在每一次循环的所有的操作中,都表示在一个block的操作
  3. //其中包括一次小波变换得到四个区域
  4. //一次空间Spatial Energy计算,将每个Block的能量块保存到EnergyBlock([8,8]大小)中
  5. //并且将这些能量块的数值保存为vector作为SVM的训练样本
  6. for ( int x= 0;x<inputImage.rows;x+=N)
  7. {
  8. Mat ROIBlock = inputImage(Range(x,x+N),Range(x,x+N));
  9. //小波变换:
  10. //waveletblockLH为LH列变换后的结果
  11. //waveletblock为waveletblock的LH行变换的结果
  12. Mat WaveletBlockLH=Mat::zeros( 16, 16, ROIBlock.type());
  13. Mat WaveletBlock=Mat::zeros( 16, 16, ROIBlock.type());
  14. Mat EnergyBlock = Mat::zeros( 8, 8,ROIBlock.type());
  15. //计算
  16. for ( int i= 0,j= 0;j<ROIBlock.cols;i+= 2,j++)
  17. {
  18. //判断是否为前八列,如果成立则
  19. // j=.i+.(i+1)
  20. //否则:j=.(i-8)-.(i+1-8)
  21. if ( floor(j / 8) == 0)
  22. {
  23. WaveletBlockLH.col(j) = ROIBlock.col(i) + ROIBlock.col(i + 1);
  24. }
  25. else
  26. WaveletBlockLH.col(j)=ROIBlock.col(i-N)-ROIBlock.col(i-N+ 1);
  27. }
  28. for ( int i = 0,j = 0; j<WaveletBlockLH.rows; i += 2, j++)
  29. {
  30. //判断是否为前八列,如果成立则
  31. // j=.i+.(i+1)
  32. //否则:j=.(i-8)-.(i+1-8)
  33. if ( floor(j / 8) == 0)
  34. {
  35. WaveletBlock.row(j) = WaveletBlockLH.row(i) + WaveletBlockLH.row(i + 1);
  36. }
  37. else
  38. WaveletBlock.row(j) = WaveletBlockLH.row(i - N) - WaveletBlockLH.row(i - N+ 1);
  39. }


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值