亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? wvlttransdib.cpp

?? VC++圖像處理程序設(shè)計課本和代碼.
?? CPP
字號:
// WvltTrans.cpp: implementation of the CWvltTrans class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "windowsx.h"
#include "math.h"

#include "MainFrm.h"
#include "DynSplitView2.h"
#include "WvltTransDib.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CWvltTransDib::CWvltTransDib()
{

}

CWvltTransDib::~CWvltTransDib()
{

}

/********************************************************************************
*函數(shù)描述:	Hangbianhuan實現(xiàn)小波行變換
*函數(shù)參數(shù):	無 
*函數(shù)返回值:函數(shù)無返回值						  
*********************************************************************************/
void CWvltTransDib::Hangbianhuan()
{
	int i,j;
	LONG wide,height;
	LPBYTE temp1,m_pData2;

	wide=this->GetWidth();
	height=this->GetHeight();
	m_pData2=this->GetData2();

	int nWide=wide/2;

	//分配臨時數(shù)據(jù)空間
	temp1 = new BYTE[height*wide];

	//從設(shè)備緩存中獲得原始圖像數(shù)據(jù)
    for(j = 0; j < height; j ++)            
	{
		for(i = 0; i < nWide; i ++)           
		{
			int w = i *2;
			temp1[j*wide+i] = m_pData2[j*wide+w];		//偶
			temp1[j*wide+nWide+i] = m_pData2[j*wide+w+1];	//奇
		}
	}
	//通過圖像的差分,完成小波變換
	for(j=0; j<height; j++)
	{
		for(i=0; i<nWide-1; i++)
		{
			temp1[j*wide+nWide-1+i] =temp1[j*wide+(nWide-1)+i] - temp1[j*wide+i]+128;	
		}
	}

	//小波經(jīng)過處理后,放入顯示緩存中
    for(j=0; j<(int)height; j++)
	{
		for(i=0; i<(int)wide; i++)
		{
			m_pData2[j*wide+i]  = temp1[j*wide+i];
		}
	}
	//刪除臨時的數(shù)據(jù)空間
	delete temp1;
}

/********************************************************************************
*函數(shù)描述:	Liebianhuan實現(xiàn)小波列變換
*函數(shù)參數(shù):	無 
*函數(shù)返回值:函數(shù)無返回值						  
*********************************************************************************/
void CWvltTransDib::Liebianhuan()
{
	int i,j;
	LONG wide,height;
	LPBYTE  temp,m_pData2;
	wide=this->GetWidth();
	height=this->GetHeight();
	m_pData2=this->GetData2();
	int nHeight=height/2;
	//分配臨時數(shù)據(jù)空間
	temp = new BYTE[height*wide];
	for(i = 0; i < wide; i ++)            
	{
		for(j = 0; j < nHeight; j ++)           
		{
			int h = j *2 ;
			temp[j*wide+i] = m_pData2[h*wide+i];		//even
			temp[(nHeight + j)*wide+i] = m_pData2[(h+1)*wide+i];	//odd
		}
	}
	//通過圖像的差分,完成小波變換
	for(i=0; i<wide; i++)
	{
		for(j=0; j<nHeight-1; j++)
		{
			temp[ j*wide+i]=temp[(nHeight + j)*wide+i]- temp[j*wide+i]+128;
		}
	}
    for(j=0; j<(int)height; j++)
	{
		for(i=0; i<(int)wide; i++)
		{
			m_pData2[j*wide+i]  = temp[j*wide+i];
		}
	}
	//刪除臨時的數(shù)據(jù)空間
	delete temp;	
}


/********************************************************************************
*函數(shù)描述:	Once實現(xiàn)小波變換
*函數(shù)參數(shù):	int n 小波變換的層數(shù) 
*函數(shù)返回值:函數(shù)無返回值						  
*********************************************************************************/
void CWvltTransDib::Once(int n)
{
	int i,j;
	LONG wide,height,nWide,nHeight;
	LPBYTE temp1, temp2,m_pData2;
	for(int k=1;k<=n;k++)
    {
		wide=this->GetWidth();
		height=this->GetHeight();
		m_pData2=this->GetData2();
		//分配臨時數(shù)據(jù)空間
		temp1 = new BYTE[height*wide];
		temp2 = new BYTE[height*wide];
		nWide=wide/pow(2,k);
		nHeight=height/pow(2,k);
		//完成行變換
		for(j = height*(1-1/pow(2,(k-1))); j < height; j ++)            
		{
			for(i = 0; i < nWide; i ++)           
			{
				int w = i *2;
				temp1[j*wide+i] = m_pData2[j*wide+w];		//偶
				temp1[j*wide+nWide+i] = m_pData2[j*wide+w+1];	//奇
			}
		}
		//通過圖像的差分,完成小波變換
		for(j= height*(1-1/pow(2,(k-1))); j<height; j++)
		{
			for(i=0; i<nWide-1; i++)
			{
				temp1[j*wide+nWide-1+i] =temp1[j*wide+nWide-1+i] - temp1[j*wide+i]+128;	
			}
		}
		//完成列變換
		for(i = 0; i < wide/pow(2,k-1); i ++)            
		{
			for(j =  height*(1-1/pow(2,(k-1))); j <  height*(1-1/pow(2,(k-1)))+nHeight; j ++)           
			{
				int m, h;
				m=height*(1-1/pow(2,(k-1)));
				h= (j-m)*2 ;
				temp2[j*wide+i] = temp1[(m+h)*wide+i];		//even
				temp2[(nHeight + j)*wide+i] = temp1[(m+h+1)*wide+i];	//odd
			}
		}
		//通過圖像的差分,完成小波變換
		for(i=0; i<wide/pow(2,k-1); i++)
		{
			for(j =  height*(1-1/pow(2,(k-1))); j <  height*(1-1/pow(2,(k-1)))+nHeight; j ++) 
			{
				temp2[ j*wide+i] = temp2[j*wide+i]-temp2[(nHeight + j)*wide+i]+128;
			}
		}
		//小波經(jīng)過處理后,放入顯示緩存中
		for(j = height*(1-1/pow(2,(k-1))); j < height; j ++)    
		{
			for(i=0; i<wide/pow(2,k-1); i++)
			{
				m_pData2[j*wide+i]  = temp2[j*wide+i];
			}
		}
		//刪除臨時的數(shù)據(jù)空間
		delete temp1;
		delete temp2;
	}
}

/********************************************************************************
*函數(shù)描述:	IDWT 實現(xiàn)小波反變換
*函數(shù)參數(shù):	int n 小波變換的層數(shù) 
*函數(shù)返回值:函數(shù)無返回值						  
*********************************************************************************/
void CWvltTransDib::IDWT(int n)
{
	int i,j;
	LONG wide,height,nWide,nHeight;
	LPBYTE temp1, temp2,temp3,m_pData2;
	for(int k=n;k>=1;k--)
    {
		wide=(this->GetWidth());
		height=(this->GetHeight());
		m_pData2=this->GetData2();
		//分配臨時數(shù)據(jù)空間
		temp1 = new BYTE[height*wide];
		temp2 = new BYTE[height*wide];
		temp3 = new BYTE[height*wide];
		nWide=wide/pow(2,k);
		nHeight=height/pow(2,k);
		memcpy(temp1,m_pData2,height*wide);
		for(i=0; i<wide/pow(2,k-1); i++)
		{
			for(j =  height*(1-1/pow(2,(k-1))); j <  height*(1-1/pow(2,(k-1)))+nHeight; j ++) 
			{
				temp1[ j*wide+i]=temp1[(nHeight + j)*wide+i]+ temp1[j*wide+i]-128;
			}
		}
		for(i = 0; i < wide/pow(2,k-1); i ++)            
		{
			for(j =  height*(1-1/pow(2,(k-1))); j <  height*(1-1/pow(2,(k-1)))+nHeight; j ++)           
			{
				int m, h;
				m=height*(1-1/pow(2,(k-1)));
				h= (j-m)*2 ;
				temp2[(m+h)*wide+i]=temp1[j*wide+i];
				temp2[(m+h+1)*wide+i]=temp1[(nHeight + j)*wide+i];
			}
		}
		for(j= height*(1-1/pow(2,(k-1))); j<height; j++)
		{
			for(i=0; i<nWide-1; i++)
			{
				temp2[j*wide+nWide+i] += temp2[j*wide+i]-128;	
			}
		}
		for(j = height*(1-1/pow(2,(k-1))); j < height; j ++)            
		{
			for(i = 0; i < nWide; i ++)           
			{
				int w = i *2;
				temp3[j*wide+w]=temp2[j*wide+i];
				temp3[j*wide+w+1]=temp2[j*wide+nWide+i];
			}
		}		
		//小波經(jīng)過處理后,放入顯示緩存中
		for(j = height*(1-1/pow(2,(k-1))); j < height; j ++)    
		{
			for(i=0; i<wide/pow(2,k-1); i++)
			{
				m_pData2[j*wide+i]  = temp3[j*wide+i];
			}
		}
		//刪除臨時的數(shù)據(jù)空間
		delete temp1;
		delete temp2;
	}
}

/********************************************************************************
*函數(shù)描述:	LowFilter實現(xiàn)小波低通濾波效果
*函數(shù)參數(shù):	int n 小波變換層數(shù) 
*函數(shù)返回值:函數(shù)無返回值						  
*********************************************************************************/
void CWvltTransDib::LowFilter(int n)
{
	int i,j;
	LONG wide,height,nWide,nHeight;
	LPBYTE m_pData2;
	wide=this->GetWidth();
	height=this->GetHeight();
	m_pData2=this->GetData2();
	nWide=wide/2;
	nHeight=height/2;
	Once(n);
	for(j=0;j<height;j++)
	{
		for(i=0;i<wide;i++)
		{
			if((j>=height*(1-1/pow(2,(n-1))))&&(i<wide/pow(2,n)))
				continue;
			else
				m_pData2[j*wide+i] =(BYTE)128;
		}
	}
	IDWT(n);
}

/********************************************************************************
*函數(shù)描述:	HighFilter 實現(xiàn)高通濾波效果
*函數(shù)參數(shù):	int n 小波變換層數(shù) 
*函數(shù)返回值:函數(shù)無返回值						  
*********************************************************************************/
void CWvltTransDib::HighFilter(int n)
{
	int i,j;
	LONG wide,height,nWide,nHeight;
	LPBYTE m_pData2;
	wide=this->GetWidth();
	height=this->GetHeight();
	m_pData2=this->GetData2();
	nWide=wide/2;
	nHeight=height/2;
	LONG lLineBytes = (wide*3+3)/4 *4;	
	Once(n);
	for(j=height*(1-1/pow(2,(n-1)));j<height;j++)
	{
		for(i=0;i<wide/pow(2,n);i++)
		{
			m_pData2[j*wide+i] =(BYTE)128;
		}
	}
	IDWT(n);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人精品视频| 国产视频一区不卡| 久久网这里都是精品| 中文一区二区完整视频在线观看| 亚洲视频在线观看三级| 日韩高清不卡一区二区| 国产成人午夜视频| 色94色欧美sute亚洲线路二| 精品少妇一区二区三区在线播放 | 精品一区二区三区日韩| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | proumb性欧美在线观看| 欧美三级电影在线观看| 欧美精品一区二区三区一线天视频| 中文字幕免费在线观看视频一区| 亚洲综合免费观看高清完整版| 美女被吸乳得到大胸91| 99精品桃花视频在线观看| 日韩三级在线观看| 亚洲欧美日韩国产手机在线| 久久国产精品色| 欧美综合视频在线观看| 久久丝袜美腿综合| 亚洲大尺度视频在线观看| 国产91色综合久久免费分享| 欧美精品在线观看播放| 中文字幕一区二区在线播放| 欧美aaa在线| 色综合一区二区| 久久午夜羞羞影院免费观看| 亚洲风情在线资源站| 成人网在线免费视频| 欧美一区二区三区成人| 综合在线观看色| 国内精品久久久久影院薰衣草| 欧美体内she精视频| 国产亚洲欧洲一区高清在线观看| 午夜精品成人在线| 在线中文字幕不卡| 国产精品伦理一区二区| 精品亚洲欧美一区| 欧美欧美午夜aⅴ在线观看| 亚洲色图欧美在线| 成人手机电影网| 精品国精品自拍自在线| 视频一区视频二区中文| 在线精品视频免费观看| 国产精品伦一区二区三级视频| 国内精品伊人久久久久av影院 | 视频在线观看一区二区三区| 色婷婷综合久久久久中文 | 粉嫩av一区二区三区| 日韩欧美色电影| 三级精品在线观看| 欧美日本在线看| 夜夜嗨av一区二区三区网页| 成人动漫一区二区在线| 久久久精品日韩欧美| 久久99热狠狠色一区二区| 欧美一区二区视频在线观看2020| 亚洲最新视频在线观看| 91在线云播放| 亚洲天天做日日做天天谢日日欢 | 亚洲国产精品v| 国产成人精品综合在线观看| 亚洲精品一区二区在线观看| 久久精品国产秦先生| 51久久夜色精品国产麻豆| 亚洲电影欧美电影有声小说| 欧美亚洲国产bt| 亚洲一区二区三区在线播放| 欧美性大战久久| 亚洲大片在线观看| 这里只有精品视频在线观看| 日韩精品91亚洲二区在线观看| 欧美视频中文字幕| 亚洲二区视频在线| 欧美高清性hdvideosex| 日本欧洲一区二区| 日韩美女在线视频| 麻豆精品一区二区综合av| 精品国产1区2区3区| 激情文学综合插| 久久久久久99久久久精品网站| 国产高清无密码一区二区三区| 国产拍欧美日韩视频二区| 粉嫩一区二区三区在线看| 国产精品麻豆网站| 在线一区二区观看| 日本视频中文字幕一区二区三区| 日韩欧美国产三级电影视频| 国内精品在线播放| 国产精品久久久久精k8| 欧美制服丝袜第一页| 天堂成人免费av电影一区| 日韩精品中文字幕在线不卡尤物| 久久成人免费电影| 国产香蕉久久精品综合网| www.日本不卡| 亚洲午夜私人影院| 精品久久久久香蕉网| 高清视频一区二区| 一区二区三区四区五区视频在线观看| 欧美日韩五月天| 久久99国产精品免费| 中文字幕巨乱亚洲| 在线观看日韩av先锋影音电影院| 日本午夜精品一区二区三区电影| 久久先锋资源网| 日本精品免费观看高清观看| 视频在线观看一区| 国产清纯白嫩初高生在线观看91 | 一区在线播放视频| 欧美日韩久久不卡| 国产毛片一区二区| 亚洲精品免费在线| 欧美成人猛片aaaaaaa| 成人免费的视频| 日韩高清国产一区在线| 国产免费成人在线视频| 欧美日韩精品专区| 成人免费毛片a| 日本中文字幕一区二区视频| 国产精品久久久久久久久果冻传媒| 中文字幕日本乱码精品影院| 欧美三级日本三级少妇99| 国产精品综合网| 亚洲国产你懂的| 久久久不卡网国产精品二区| 欧美在线观看视频在线| 国产精品69毛片高清亚洲| 亚洲国产视频a| 国产精品视频第一区| 欧美一级在线免费| 色欧美乱欧美15图片| 国产精品综合一区二区| 视频一区中文字幕国产| 日韩伦理免费电影| 久久精品一区二区三区四区| 欧美少妇bbb| eeuss鲁片一区二区三区在线看| 免费久久99精品国产| 一区二区三区在线观看视频| 久久综合色综合88| 欧美日韩国产免费一区二区 | 亚洲另类在线视频| 国产三级精品在线| 精品久久久网站| 欧美另类一区二区三区| 99re这里只有精品首页| 国产91对白在线观看九色| 久久精品72免费观看| 午夜私人影院久久久久| 一区二区三区四区在线播放| 国产精品入口麻豆原神| 久久精品在线观看| 精品对白一区国产伦| 欧美福利电影网| 欧美在线免费观看亚洲| 99国产精品一区| 成人a区在线观看| 国产乱妇无码大片在线观看| 麻豆精品视频在线观看视频| 午夜精品福利在线| 亚洲黄色免费电影| 亚洲日本韩国一区| 亚洲欧洲精品一区二区三区不卡| 久久久激情视频| 国产亚洲女人久久久久毛片| 日韩女优毛片在线| 日韩丝袜美女视频| 欧美一级高清片| 这里只有精品免费| 欧美一区在线视频| 欧美日韩电影在线播放| 欧美性xxxxxx少妇| 欧美日韩一区二区三区在线| 欧美三级韩国三级日本三斤| 在线观看免费成人| 欧美日韩精品免费| 欧美精品丝袜久久久中文字幕| 亚洲国产另类av| 亚洲美女一区二区三区| 国产精品毛片久久久久久| 国产精品理伦片| 综合欧美一区二区三区| 综合色天天鬼久久鬼色| 亚洲免费观看高清完整版在线观看| 亚洲私人黄色宅男| 亚洲综合一区二区三区| 亚洲国产一区二区a毛片| 亚洲18女电影在线观看| 日产国产高清一区二区三区 | 欧美videos大乳护士334| 日韩欧美成人激情| 久久欧美一区二区| 国产日韩精品一区| 亚洲天堂免费看| 亚洲一区二区三区四区在线免费观看 | 国产一区在线精品|