</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 En
小波变换的C++实现
最新推荐文章于 2022-07-18 15:59:01 发布
本文介绍了如何在C++中实现小波变换。作者在代码中详细展示了如何将图像划分为16*16的块,并对每个块进行小波变换,通过两次迭代计算得到四个区域,然后计算空间能量并存储为SVM训练样本。
摘要由CSDN通过智能技术生成