/* * Copyright (c) 2015,中国航天电子技术研究院 无人机系统工程研究所 * All rights reserved. * * 文件名称:waveDecompose.h * 摘 要:小波分解接口 * * 当前版本:1.0 * 作 者:王家星 * 完成日期:2015年08月27日 */ #pragma once // OpenCV #include using namespace cv; // 功能:函数 waveDec2() 对输入矩阵 img 进行 level 层symN小波分解,得到相应的分解系数 // 输入: // img: 输入图像 // wname: 小波名称 // level:小波分解层数 // 输出: // scf: 存储各级分解系数矩阵的大小以及原始(图像)矩阵的大小 // coef 分解系数,其结构如下: // coef = {cA_N;cV_N;cH_N;cD_N;cV_N-1;cH_N-1;cD_N-1;……;cV_1;cH_1;cD_1} // 返回值: // 运算有效返回true,否则返回false bool waveDec2(std::deque &coef, std::deque &scf, const cv::Mat img, const string wname = "sym5", const unsigned int level = 10); // 功能:函数 getWaveDecFilter() 基于小波名称wname计算小波分解滤波器 // 输入: // wname: 小波名称 // 支持小波: // 1. haar // 2. symN [1, 10] // 3. dbN [1, 10] // 4. coifN [1, 5] // 输出: // Lo_D: 低通滤波器 // Hi_D: 高通滤波器 // 返回值: // 运算有效返回true,否则返回false bool getWaveDecFilter(cv::Mat &Lo_D, cv::Mat &Hi_D, const string wname); // 功能:函数 dwt() 对输入行序列x进行1维小波分解,输出分解序列[cA,cD] // 输入: // x: 输入序列(一行) // LF: 低通滤波器(一行) // HF: 高通滤波器(一行) // 输出: // cA: 平均部分的小波分解系数 // cD: 细节部分的小波分解系数 // 返回值: // 运算有效返回true,否则返回false bool dwt(cv::Mat &cA, cv::Mat &cD, const cv::Mat &x, const cv::Mat &LF, const cv::Mat &HF); // 功能:函数 dwt2() 对输入矩阵 img 进行2维小波分解,输出四个分解系数子矩阵[LL,HL,LH,HH] // 输入: // img: 输入图像 // Lo_D: 小波分解的低频滤波器组 // Hi_D: 小波分解的高频滤波器组 // 输出: // cA,cV,cH,cD :是小波分解系数矩阵的四个相等大小的子矩阵 // cA:低频部分分解系数; // cV:垂直方向分解系数; // cH:水平方向分解系数; // cD:对角线方向分解系数; // 返回值: // 运算有效返回true,否则返回false bool dwt2(cv::Mat &cA, cv::Mat &cV, cv::Mat &cH, cv::Mat &cD, const cv::Mat img, const cv::Mat Lo_D, cv::Mat Hi_D);