|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2015,<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD>Ժ <EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>waveReconstruct.h
|
|
|
|
|
* ժ Ҫ<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
*
|
|
|
|
|
* <EFBFBD><EFBFBD>ǰ<EFBFBD>汾<EFBFBD><EFBFBD>1.0
|
|
|
|
|
* <EFBFBD><EFBFBD> <EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>2015<EFBFBD><EFBFBD>08<EFBFBD><EFBFBD>27<EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
// OpenCV
|
|
|
|
|
#include <opencv2\opencv.hpp>
|
|
|
|
|
using namespace cv;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD> waveRec2() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķֽ<C4B7>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>coef<65><66><EFBFBD><EFBFBD> level <20><><EFBFBD>ع<EFBFBD><D8B9><EFBFBD> <20>õ<EFBFBD><C3B5>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>rec
|
|
|
|
|
// <20><><EFBFBD>룺
|
|
|
|
|
// coef <20>ֽ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD>£<EFBFBD>coef = {cA_N;cV_N;cH_N;cD_N;cV_N-1;cH_N-1;cD_N-1;<3B><><EFBFBD><EFBFBD>;cV_1;cH_1;cD_1}
|
|
|
|
|
// scf: <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С<EFBFBD>Լ<EFBFBD>ԭʼ<D4AD><CABC>ͼ<EFBFBD><EFBFBD><F1A3A9BE><EFBFBD><EFBFBD>Ĵ<EFBFBD>С
|
|
|
|
|
// wname: С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// level<65><6C>С<EFBFBD><D0A1><EFBFBD>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// rec: <20>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
bool waveRec2(cv::Mat& rec, const std::deque<cv::Mat> &coef, const std::deque<cv::Vec2i> &scf, const string wname = "sym5", const unsigned int level = 10);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD> getWaveRecFilter() <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>wname<6D><65><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ع<EFBFBD><D8B9>˲<EFBFBD><CBB2><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD>룺
|
|
|
|
|
// wname: С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// ֧<><D6A7>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|
|
|
|
// 1. haar
|
|
|
|
|
// 2. symN [1, 10]
|
|
|
|
|
// 3. dbN [1, 10]
|
|
|
|
|
// 4. coifN [1, 5]
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// Lo_R<5F><52> <20><>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
|
|
|
|
// Hi_R<5F><52> <20><>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
bool getWaveRecFilter(cv::Mat &Lo_R, cv::Mat &Hi_R, const string wname);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD> idwt() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢС<C9A2><D0A1><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD>ع<EFBFBD><D8B9><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD>dst
|
|
|
|
|
// <20><><EFBFBD>룺
|
|
|
|
|
// cA: ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
|
|
|
|
|
// cD: ϸ<>ڲ<EFBFBD><DAB2>ֵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽ<EFBFBD>ϵ<EFBFBD><CFB5>
|
|
|
|
|
// LF: <20>ع<EFBFBD><D8B9>õĵ<C3B5>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
|
|
|
|
// HF<48><46> <20>ع<EFBFBD><D8B9>õĸ<C3B5>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// dst<73><74> <20>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
bool idwt(cv::Mat &dst, const cv::Mat &cA, const cv::Mat &cD, const cv::Mat &LF, const cv::Mat &HF);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD> idwt2() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>任<EFBFBD><E4BBBB> <20>õ<EFBFBD><C3B5>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>outcA
|
|
|
|
|
// <20><><EFBFBD>룺
|
|
|
|
|
// rcA,rcV,rcH,rcD : ͬ<><CDAC><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>Ƶϵ<C6B5><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// Lo_R,Hi_R <20><>ͼ<EFBFBD><CDBC><EFBFBD>ع<EFBFBD><D8B9>õ<EFBFBD><C3B5>ĵ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// size : <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// outcA: <20>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
bool idwt2(cv::Mat &outcA,
|
|
|
|
|
const cv::Mat &rcA, const cv::Mat &rcV, const cv::Mat &rcH, const cv::Mat &rcD,
|
|
|
|
|
const cv::Mat &Lo_R, const cv::Mat &Hi_R,
|
|
|
|
|
cv::Vec2i size);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|