|
|
|
|
|
/*
|
|
|
* Copyright (c) 2015,中国航天电子技术研究院 无人机系统工程研究所
|
|
|
* All rights reserved.
|
|
|
*
|
|
|
* 文件名称:waveDecompose.h
|
|
|
* 摘 要:小波分解接口
|
|
|
*
|
|
|
* 当前版本:1.0
|
|
|
* 作 者:王家星
|
|
|
* 完成日期:2015年08月27日
|
|
|
*/
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
// OpenCV
|
|
|
#include <opencv2\opencv.hpp>
|
|
|
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<cv::Mat> &coef, std::deque<cv::Vec2i> &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);
|
|
|
|