版权声明:本文为博主原创文章,转载时请注明来源。有问题请e-mail:mr.baishu@gmail.com https://blog.youkuaiyun.com/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">
</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>
for (int x=0 ;x<inputImage.rows;x+=N)
Mat ROIBlock = inputImage(Range(x,x+N),Range(x,x+N));
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++)
WaveletBlockLH.col(j) = ROIBlock.col(i) + ROIBlock.col(i + 1 );
WaveletBlockLH.col(j)=ROIBlock.col(i-N)-ROIBlock.col(i-N+1 );
for (int i = 0 ,j = 0 ; j<WaveletBlockLH.rows; i += 2 , j++)
WaveletBlock.row(j) = WaveletBlockLH.row(i) + WaveletBlockLH.row(i + 1 );
WaveletBlock.row(j) = WaveletBlockLH.row(i - N) - WaveletBlockLH.row(i - N+1 );