91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 205.6 KB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2024-12-27
  • 語言: 其他
  • 標簽: 圖像小波??

資源簡介

DWT.h,實現小波變換的頭文件
DWT.cpp,實現小波變換的源文件,里面有6個函數,可根據需要調用

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include?“DWT.h“

//多用8個的

const?double?h[4]?=?{0.4829629131450.8365163037380.224143868042-0.129409522551};
const?double?g[4]?=?{-0.129409522551-0.2241438680420.836516303738-0.482962913145};

void?DWT_1D(double?*Tint?Ndouble?*W)
{
//采用對稱延拓
//采用0延拓
//采用周期延拓好

/*
周期延拓效果最好,重建結果無失真,對稱延拓重建psnr達到60以上,0延拓達到50以上,都還不錯。
*/

ASSERT(T?!=?NULL);
ASSERT(W?!=?NULL);
//
int?K?=?N/2;
deque?tempctempd;

//double?vernier[4];
//
//計算
for(int?i?=?0;i? {
tempc.push_back(T[i]);
}
tempd?=?tempc;
//
for(int?i?=?0;i? {
//tempc.push_back(T[2*K-1-i]);

tempc.push_back(T[i]);//周期

//tempc.push_back(0);
}
for(int?i?=?0;i? {
//tempd.push_front(T[i]);

tempd.push_front(T[2*K-1-i]);

//tempd.push_front(0);
}
//tempd.push_back(T[2*K-1]);

tempd.push_back(T[0]);

//tempd.push_back(0);
/////////
for(int?i?=?0;i? {
double?sumcsumd;
sumc?=?sumd?=?0;
for(int?k?=?0;k? {
sumc?+=?tempc[2*i+k]*h[k];
sumd?+=?tempd[2*i+k]*g[k];
}
W[i]?=?sumc;
W[i+K]?=?sumd;
}
if(N%2!=0)
{
W[N-1]?=?T[N-1];
}
tempc.clear();
tempd.clear();
}

void?DWT_2D(double?*Imgint?nWint?nHdouble?*W)
{
//一層小波變換
ASSERT(Img?!=?NULL);
ASSERT(W?!=?NULL);
//
double?*T*W0;
//行變換
T?=?new?double[nW];
W0?=?new?double[nW];
for(int?i?=?0;i? {
for(int?j?=?0;j? {
T[j]?=?Img[i*nW+j];
}
DWT_1D(TnWW0);
for(int?j?=?0;j? {
W[i*nW+j]?=?W0[j];
}
}
delete?[]T;
delete?[]W0;
//列變換
T?=?new?double[nH];
W0?=?new?double[nH];
for(int?i?=?0;i? {
for(int?j?=?0;j? {
T[j]?=?(double)W[j*nW+i];
}
DWT_1D(TnHW0);
for(int?j?=?0;j? {
W[j*nW+i]?=?W0[j];
}
}
delete?[]T;
delete?[]W0;
}

void?DWT_2D(double?*Imgint?nWint?nHdouble?*Wint?n)
{

ASSERT(Img?!=?NULL);
ASSERT(W?!=?NULL);
////////////////////
int?rr1r2;
r1?=?(int)(log((double)nW)/log(2.0));
r2?=?(int)(log((double)nH)/log(2.0));
r?=?min(r1r2);

ASSERT(n?<=?r);
////////////////////////////////////////////////////
for(int?i?=?0;i? {
for(int?j?=?0;j? {
W[i*nW+j]?=?Img[i*nW+j];
}
}
//////
double?*T*DWT;
for(int?i?=?0;i? {
int?hw;
h?=?(int)((double)nH/pow(2.0(double)i));
w?=?(int)((double)nW/pow(2.0(double)i));
///////////////////////////////////////
T?=?new?double[h*w];
DWT?=?new?double[h*w];

for(int?j?=?0;j? {
for(int?k?=?0;k? {
T[j*w+k]?=?W[j*nW+k];
}
}
DWT_2D(TwhDWT);
for(int?j?=?0;j? {
for(int?k?=?0;k? {
W[j*nW+k]?=?DWT[j*w+k];
}
}

delete?[]T;
delete?[]DWT;
///////////////////////////////////////
}
}

void?IDWT_1D(double?*Tint?Ndouble?*W)
{
//反變換,從W到T
ASSERT(T?!=?NULL);
ASSERT(W?!=?NULL);
//
int?K?=?N/

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????1289728??2009-10-26?20:37??DwtImg.exe

?????文件???????5850??2009-10-17?20:58??DWT.cpp

?????文件????????390??2009-09-21?09:55??DWT.h

-----------?---------??----------?-----??----

??????????????1295968????????????????????3


評論

共有 條評論

相關資源