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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wvlttransdib.cpp

?? 圖像處理算法相關VC程序 VC++圖像處理程序設計配套光盤
?? 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()
{

}

/********************************************************************************
*函數描述:	Hangbianhuan實現小波行變換
*函數參數:	無 
*函數返回值:函數無返回值						  
*********************************************************************************/
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;

	//分配臨時數據空間
	temp1 = new BYTE[height*wide];

	//從設備緩存中獲得原始圖像數據
    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;	
		}
	}

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

/********************************************************************************
*函數描述:	Liebianhuan實現小波列變換
*函數參數:	無 
*函數返回值:函數無返回值						  
*********************************************************************************/
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;
	//分配臨時數據空間
	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];
		}
	}
	//刪除臨時的數據空間
	delete temp;	
}


/********************************************************************************
*函數描述:	Once實現小波變換
*函數參數:	int n 小波變換的層數 
*函數返回值:函數無返回值						  
*********************************************************************************/
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();
		//分配臨時數據空間
		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;
			}
		}
		//小波經過處理后,放入顯示緩存中
		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];
			}
		}
		//刪除臨時的數據空間
		delete temp1;
		delete temp2;
	}
}

/********************************************************************************
*函數描述:	IDWT 實現小波反變換
*函數參數:	int n 小波變換的層數 
*函數返回值:函數無返回值						  
*********************************************************************************/
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();
		//分配臨時數據空間
		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];
			}
		}		
		//小波經過處理后,放入顯示緩存中
		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];
			}
		}
		//刪除臨時的數據空間
		delete temp1;
		delete temp2;
	}
}

/********************************************************************************
*函數描述:	LowFilter實現小波低通濾波效果
*函數參數:	int n 小波變換層數 
*函數返回值:函數無返回值						  
*********************************************************************************/
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);
}

/********************************************************************************
*函數描述:	HighFilter 實現高通濾波效果
*函數參數:	int n 小波變換層數 
*函數返回值:函數無返回值						  
*********************************************************************************/
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);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲愉拍自拍另类高清精品| 日本一区二区视频在线| av在线不卡观看免费观看| 国产伦精品一区二区三区视频青涩| 亚洲h在线观看| 日韩专区在线视频| 日本麻豆一区二区三区视频| 日韩电影一区二区三区四区| 亚洲va欧美va人人爽| 日本欧美一区二区在线观看| 日韩激情一区二区| 久99久精品视频免费观看| 国产一区二区三区高清播放| 粉嫩av一区二区三区粉嫩| 成人99免费视频| 色偷偷久久人人79超碰人人澡| 日本久久一区二区三区| 欧美性视频一区二区三区| 884aa四虎影成人精品一区| 欧美一级xxx| 国产亚洲一二三区| 亚洲精选视频免费看| 亚洲成人免费av| 国内精品国产成人| 91在线观看污| 91精品国产麻豆| 欧美激情资源网| 午夜精品视频在线观看| 日韩在线一区二区三区| 国产成人福利片| 欧美撒尿777hd撒尿| 欧美大片日本大片免费观看| 亚洲国产成人在线| 日韩国产成人精品| 成人av动漫网站| 欧美一区二区在线免费观看| 久久精品视频免费| 午夜精品久久一牛影视| 高清不卡在线观看| 日韩三级视频中文字幕| 亚洲欧洲制服丝袜| 韩国精品主播一区二区在线观看| 91啦中文在线观看| 久久精品这里都是精品| 亚洲成人动漫在线免费观看| 成人黄色一级视频| 欧美不卡一二三| 亚洲五月六月丁香激情| 成人一级片在线观看| 日韩免费观看高清完整版| 亚洲欧美一区二区三区久本道91| 激情偷乱视频一区二区三区| 欧美日韩国产首页| 亚洲三级在线播放| 成人免费视频一区| 亚洲精品在线三区| 免费久久精品视频| 欧美视频一区二区三区四区| 国产精品二区一区二区aⅴ污介绍| 蜜臀国产一区二区三区在线播放| 日本韩国欧美三级| 成人免费在线视频观看| 国产乱码精品一区二区三区av| 91麻豆精品国产91久久久更新时间| 亚洲人成在线观看一区二区| 国产成人在线视频网站| 久久综合九色综合欧美就去吻| 日本vs亚洲vs韩国一区三区二区| 91国产免费看| 亚洲一区在线看| 欧美亚洲日本国产| 亚洲一区自拍偷拍| 欧美日韩国产三级| 日韩高清国产一区在线| 7777精品伊人久久久大香线蕉完整版| 亚洲影院在线观看| 欧美日韩高清一区| 日韩在线一二三区| 337p亚洲精品色噜噜噜| 爽好多水快深点欧美视频| 在线播放日韩导航| 日本不卡在线视频| 欧美大白屁股肥臀xxxxxx| 久久超碰97人人做人人爱| 精品女同一区二区| 国产成人午夜精品5599| 国产日韩欧美综合在线| 粉嫩aⅴ一区二区三区四区五区| 日本一区二区免费在线观看视频 | 亚洲国产精品综合小说图片区| 99精品在线观看视频| 一区二区高清视频在线观看| 欧美日韩亚洲另类| 久久99国产精品成人| 日本一区二区三区国色天香 | 美女视频一区在线观看| 日韩视频一区二区在线观看| 国产高清一区日本| 一级女性全黄久久生活片免费| 欧美老肥妇做.爰bbww| 久久99蜜桃精品| 中文字幕在线观看一区| 欧美日韩在线三级| 国产精品伊人色| 一区二区欧美精品| 精品少妇一区二区三区| 99热在这里有精品免费| 夜夜操天天操亚洲| 国产亚洲婷婷免费| 欧美日韩一区 二区 三区 久久精品| 久久国产精品72免费观看| 国产精品久久久久久久久动漫| 欧美日韩极品在线观看一区| 国产电影一区在线| 亚洲第一会所有码转帖| 国产色产综合产在线视频| 欧美日韩一区 二区 三区 久久精品| 极品少妇一区二区| 亚洲不卡一区二区三区| 国产精品毛片久久久久久久| 日韩午夜三级在线| 色香色香欲天天天影视综合网| 捆绑紧缚一区二区三区视频| 亚洲免费电影在线| 欧美国产欧美综合| 精品国产免费久久| 欧美高清你懂得| 日本高清不卡视频| 丁香另类激情小说| 国产一区欧美二区| 蜜桃av一区二区三区电影| 亚洲国产美国国产综合一区二区| 国产视频一区在线观看| 日韩欧美国产三级| 91麻豆精品国产91久久久| 色94色欧美sute亚洲线路一久 | 中文天堂在线一区| 欧美精品成人一区二区三区四区| www.一区二区| 国产91丝袜在线18| 国产一区二区免费视频| 日韩高清一区二区| 日本亚洲最大的色成网站www| 亚洲精品国产第一综合99久久| 日本一区二区高清| 国产亚洲一区二区三区| 久久久99久久| 久久精品视频在线免费观看| 精品对白一区国产伦| 亚洲精品一区二区三区99| 7777女厕盗摄久久久| 欧美一区永久视频免费观看| 在线观看91av| 91精品国产福利在线观看| 91精品国产一区二区三区| 日韩一级片在线观看| 日韩一区二区三区观看| 精品国产亚洲在线| 久久影院午夜片一区| 国产午夜精品在线观看| 中文字幕制服丝袜一区二区三区| 国产精品青草综合久久久久99| 国产精品视频线看| 亚洲免费观看高清完整版在线观看| 亚洲啪啪综合av一区二区三区| 亚洲综合视频网| 美女任你摸久久| 国产一区二区福利视频| 不卡电影免费在线播放一区| 91免费视频大全| 欧美二区乱c少妇| 精品电影一区二区三区| 国产精品久久久久永久免费观看| 亚洲欧洲av另类| 一区二区三区中文字幕精品精品 | 麻豆精品一区二区av白丝在线| 麻豆一区二区三| 成人短视频下载| 欧美日韩国产综合久久| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品灌醉下药二区| 亚洲国产精品欧美一二99| 国精产品一区一区三区mba视频| 国产 欧美在线| 欧美三级一区二区| 久久久美女艺术照精彩视频福利播放| 国产精品激情偷乱一区二区∴| 亚洲国产欧美一区二区三区丁香婷| 理论片日本一区| 色婷婷国产精品久久包臀| 欧美一区二区视频免费观看| 国产精品传媒入口麻豆| 首页国产欧美久久| 不卡的看片网站| 精品日本一线二线三线不卡| 一区二区三区高清| 国产成人欧美日韩在线电影| 欧美精品少妇一区二区三区| 国产精品福利在线播放| 久久99久久99|