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

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

?? waveletdoc.cpp

?? this walet there is pictures in it you can debug it
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
		spTransData1[i] = new short [biWidth];
		m_WaveletCoeff[i] = new short [biWidth];
	}
	//創(chuàng)建圖像小波變換類
	CWaveletTrans *pTrans;
	//從設(shè)備緩存中獲取原始圖像數(shù)據(jù)
	for (i=0;i<=2;i++)
	{
	for(y=0; y<(int)biHeight; y++)
	{
		for( x=0; x<(int)biWidth; x++)
		{
			cur = y*biAlign+3*x;
			spOriginData[biHeight-1-y][x]=(short)(lpData[cur+i]);
		}
	}
	//完成一次圖像小波變換
	pTrans->DWT_Once(spOriginData,spTransData0,spTransData1,biHeight,biHeight/2,biWidth,biWidth/2,1,1.414);
	//允許圖像復(fù)原操作標志
	m_bOnce = TRUE;
	m_bTwice = FALSE;
	m_bTribl = FALSE;
	//m_bOnce = m_bOnce & ~m_bTwice & ~m_bTribl & ~m_bFilter;
	MaxPixVal=spTransData1[0][0];
	MinPixVal=spTransData1[0][0];
	for( y=0; y<(int)biHeight; y++)
	{
		for( x=0; x<(int)biWidth; x++)
		{
			if(MaxPixVal<spTransData1[y][x])
				MaxPixVal=spTransData1[y][x];
			if(MinPixVal>spTransData1[y][x])
				MinPixVal=spTransData1[y][x];
			//m_WvltCoeff[y][x] = spTransData1[y][x];
            
		}
	}
	Diff=MaxPixVal-MinPixVal;
	for(y=0; y<(int)biHeight; y++)
	{
		for(x=0; x<(int)biWidth; x++)
		{
		//因為小波變換后的小波系數(shù)有可能超過255甚至更多,那么就將
		//小波系數(shù)的范圍映射到0~255區(qū)間內(nèi),以后出現(xiàn)類似的處理,目的都是一樣的
			fTempBufforDisp=spTransData1[biHeight-1-y][x];
			
			fTempBufforDisp-=MinPixVal;
			long num;
			num=1<<(lpBitmapInfoHeader->biBitCount/3);

			fTempBufforDisp*=(num-1);
			fTempBufforDisp/=Diff;
			
			cur= y*biAlign+3*x;		//current pixel
			m_pstore[cur+i]=spTransData1[biHeight-1-y][x];
			m_pTransfered[cur+i]= (unsigned char)fTempBufforDisp;
         	/*
			m_pTransfered[cur]	= (unsigned char)fTempBufforDisp;
			m_pTransfered[cur+1]= (unsigned char)fTempBufforDisp;
			m_pTransfered[cur+2]= (unsigned char)fTempBufforDisp;
			*/
		}
	}
	}
	//顯示圖像的小波系數(shù)
	UpdateAllViews(NULL);
	//刪除臨時的數(shù)據(jù)空間
	delete spOriginData;
	delete spTransData0;
	delete spTransData1;
	return;	
}

void CWaveletDoc::OnWaveletTwo() 
{
//讀取數(shù)字圖像的文件頭,獲取圖像的屬性參數(shù)
	LPBITMAPINFOHEADER lpBitmapInfoHeader = (LPBITMAPINFOHEADER)(m_pBitmap+14);
	LPBITMAPFILEHEADER lpBitmapFileHeader = (LPBITMAPFILEHEADER)m_pBitmap;
	unsigned char *lpData = m_pBitmap + lpBitmapFileHeader->bfOffBits;
	unsigned long biHeight = lpBitmapInfoHeader->biHeight;
	unsigned long biWidth = lpBitmapInfoHeader->biWidth;
	unsigned long biAlign = (biWidth*3+3)/4 *4;
	unsigned long bmSize = biHeight * biAlign;
	if(m_pTransfered==NULL)
	{
		m_pTransfered=(unsigned char*) malloc (bmSize);
		m_pstore=new short [bmSize];
	}
	if(m_pTransfered==NULL)
		return;
	//圖像矩陣坐標與像素數(shù)值
	int x,y,cur;
	unsigned char tempR, tempG, tempB;
	float fTempBufforDisp;
	short MaxPixVal,MinPixVal,Diff;
	short **spOriginData, **spTransData0, **spTransData1;
	//分配數(shù)據(jù)空間
	spOriginData = new short* [biHeight];
	spTransData0 = new short* [biHeight];
	spTransData1 = new short* [biHeight];
	m_WaveletCoeff	= new short * [biHeight];

	for(int i = 0; i < biHeight; i ++)
	{
		spOriginData[i] = new short [biWidth];
		spTransData0[i] = new short [biWidth];
		spTransData1[i] = new short [biWidth];
		m_WaveletCoeff[i] = new short [biWidth];
	}
	//創(chuàng)建圖像小波變化類
	CWaveletTrans *pTrans;
	//從設(shè)備緩存中獲取原始圖像數(shù)據(jù)
	for (i=0;i<=2;i++)
	{
	for(y=0; y<(int)biHeight; y++)
	{
		for( x=0; x<(int)biWidth; x++)
		{
			cur = y*biAlign+3*x;
			spOriginData[biHeight-1-y][x]=(short)(lpData[cur+i]);
			/*
			tempB=lpData[cur];
			tempG=lpData[cur+1];
			tempR=lpData[cur+2];
			spOriginData[biHeight-1-y][x]=(short)(0.3*tempR+0.59*tempG+0.11*tempB);  //no problem
			*/
		}
	}
	//完成圖像的兩次小波變換
	pTrans->DWT_Two(spOriginData,spTransData0,spTransData1,biHeight,biHeight/2,biWidth,biWidth/2,2,1.414);
	//允許圖像復(fù)原操作標志
	m_bOnce = FALSE;
	m_bTribl = FALSE;
	m_bTwice = TRUE;
	//m_bTwice = m_bTwice & ~m_bTribl & ~m_bOnce & ~m_bFilter;
	MaxPixVal=spTransData1[0][0];
	MinPixVal=spTransData1[0][0];
	//計算得到圖像小波系數(shù)的極大值與極小值
	for( y=0; y<(int)biHeight; y++)
	{
		for( x=0; x<(int)biWidth; x++)
		{
			if(MaxPixVal<spTransData1[y][x])
				MaxPixVal=spTransData1[y][x];
			if(MinPixVal>spTransData1[y][x])
				MinPixVal=spTransData1[y][x];
			//m_WvltCoeff[y][x] = spTransData1[y][x];
		}
	}
	//計算獲得小波系數(shù)的極值差
	Diff=MaxPixVal-MinPixVal;
	//小波系數(shù)經(jīng)過處理后,放入顯示緩存中
	for(y=0; y<(int)biHeight; y++)
	{
		for(x=0; x<(int)biWidth; x++)
		{
		//因為小波變換后的小波系數(shù)有可能超過255甚至更多,那么就將
		//小波系數(shù)的范圍映射到0~255區(qū)間內(nèi),以后出現(xiàn)類似的處理,目的都是一樣的
			fTempBufforDisp=spTransData1[biHeight-1-y][x];
			fTempBufforDisp-=MinPixVal;
			long num;
			num=1<<(lpBitmapInfoHeader->biBitCount/3);
			fTempBufforDisp*=num-1;
			fTempBufforDisp/=Diff;

			cur= y*biAlign+3*x;		//current pixel	
			m_pstore[cur+i]=spTransData1[biHeight-1-y][x];
			m_pTransfered[cur+i]= (unsigned char)fTempBufforDisp;
			/*
			m_pTransfered[cur]	= (unsigned char)fTempBufforDisp;
			m_pTransfered[cur+1]= (unsigned char)fTempBufforDisp;
			m_pTransfered[cur+2]= (unsigned char)fTempBufforDisp;
			*/
		}
	}
	}
	//顯示圖像的小波系數(shù)
	UpdateAllViews(NULL);
	//刪除臨時的數(shù)據(jù)空間
	delete spOriginData;
	delete spTransData0;
	delete spTransData1;
	return;	
}

void CWaveletDoc::OnWaveletThree() 
{
//讀取數(shù)字圖像的文件頭,獲取圖像的屬性參數(shù)
	LPBITMAPINFOHEADER lpBitmapInfoHeader = (LPBITMAPINFOHEADER)(m_pBitmap+14);
	LPBITMAPFILEHEADER lpBitmapFileHeader = (LPBITMAPFILEHEADER)m_pBitmap;
	unsigned char *lpData = m_pBitmap + lpBitmapFileHeader->bfOffBits;
	unsigned long biHeight = lpBitmapInfoHeader->biHeight;
	unsigned long biWidth = lpBitmapInfoHeader->biWidth;
	unsigned long biAlign = (biWidth*3+3)/4 *4;
	unsigned long bmSize = biHeight * biAlign;
	if(m_pTransfered==NULL)
	{
		m_pTransfered=(unsigned char*) malloc (bmSize);
		m_pstore=new short [bmSize];
	}
	if(m_pTransfered==NULL)
		return;
	//圖像矩陣坐標與像素數(shù)據(jù)
	int x,y,cur;
	unsigned char tempR, tempG, tempB;
	float fTempBufforDisp;
	short MaxPixVal,MinPixVal,Diff;
	short **spOriginData, **spTransData0, **spTransData1;
	//分配圖像小波變換的數(shù)據(jù)內(nèi)存空間
	spOriginData = new short* [biHeight];
	spTransData0 = new short* [biHeight];
	spTransData1 = new short* [biHeight];
	m_WaveletCoeff	= new short * [biHeight];
	for(int i = 0; i < biHeight; i ++)
	{
		spOriginData[i] = new short [biWidth];
		spTransData0[i] = new short [biWidth];
		spTransData1[i] = new short [biWidth];
		m_WaveletCoeff[i] = new short [biWidth];
	}
	//創(chuàng)建圖像小波類
	CWaveletTrans *pTrans;
	//從設(shè)備的圖像緩存中獲取原始圖像的數(shù)據(jù)
	for (i=0;i<=2;i++)
	{
	for(y=0; y<(int)biHeight; y++)
	{
		for( x=0; x<(int)biWidth; x++)
		{
			cur = y*biAlign+3*x;
            spOriginData[biHeight-1-y][x]=lpData[cur+i];
			/*
			tempB=lpData[cur];
			tempG=lpData[cur+1];
			tempR=lpData[cur+2];
			spOriginData[biHeight-1-y][x]=(short)(0.3*tempR+0.59*tempG+0.11*tempB);  //no problem
			*/
		}
	}
	//完成圖像的三次小波變換
	pTrans->DWT_Three(spOriginData,spTransData0,spTransData1,biHeight,biHeight/2,biWidth,biWidth/2,3,1.414);
	//允許圖像復(fù)員操作標志
	m_bOnce = FALSE;
	m_bTwice = FALSE;
	m_bTribl = TRUE;
	//m_bTribl = m_bTribl & ~m_bTwice & ~m_bOnce & ~m_bFilter;
	MaxPixVal=spTransData1[0][0];
	MinPixVal=spTransData1[0][0];
	//得到小波系數(shù)的極大值和極小值
	for( y=0; y<(int)biHeight; y++)
	{
		for( x=0; x<(int)biWidth; x++)
		{
			if(MaxPixVal<spTransData1[y][x])
				MaxPixVal=spTransData1[y][x];
			if(MinPixVal>spTransData1[y][x])
				MinPixVal=spTransData1[y][x];
			//m_WvltCoeff[y][x] = spTransData1[y][x];
		}
	}
	//計算出小波系數(shù)的極值差
	Diff=MaxPixVal-MinPixVal;
	//將圖像的小波數(shù)據(jù)處理后放入顯示緩存中
	for(y=0; y<(int)biHeight; y++)
	{
		for(x=0; x<(int)biWidth; x++)
		{
		//因為小波變換后的小波系數(shù)有可能超過255甚至更多,那么就將
		//小波系數(shù)的范圍映射到0~255區(qū)間內(nèi),以后出現(xiàn)類似的處理,目的都是一樣的
			fTempBufforDisp=spTransData1[biHeight-1-y][x];
			fTempBufforDisp-=MinPixVal;
			long num;
			num=1<<(lpBitmapInfoHeader->biBitCount/3);
			fTempBufforDisp*=num-1;
			fTempBufforDisp/=Diff;

			cur= y*biAlign+3*x;		//current pixel	
			m_pstore[cur+i]=spTransData1[biHeight-1-y][x];
			m_pTransfered[cur+i]= (unsigned char)fTempBufforDisp;
			/*
			m_pTransfered[cur]	= (unsigned char)fTempBufforDisp;
			m_pTransfered[cur+1]= (unsigned char)fTempBufforDisp;
			m_pTransfered[cur+2]= (unsigned char)fTempBufforDisp;
			*/
		}
	}
	}
	
	//刪除臨時的數(shù)據(jù)空間
	delete spOriginData;
	delete spTransData0;
	delete spTransData1;


	//顯示圖像的小波變換
	UpdateAllViews(NULL);
	return;	
}

void CWaveletDoc::OnDwtNibianhuan() 
{
	// TODO: Add your command handler code here
	//讀取數(shù)字圖像的文件頭,獲取圖像的屬性參數(shù)

	LPBITMAPINFOHEADER lpBitmapInfoHeader = (LPBITMAPINFOHEADER)(m_pBitmap+14);
	LPBITMAPFILEHEADER lpBitmapFileHeader = (LPBITMAPFILEHEADER)m_pBitmap;
	unsigned char *lpData = m_pBitmap + lpBitmapFileHeader->bfOffBits;
	unsigned long biHeight = lpBitmapInfoHeader->biHeight;
	unsigned long biWidth = lpBitmapInfoHeader->biWidth;
	unsigned long biAlign = (biWidth*3+3)/4 *4;
	unsigned long bmSize = biHeight * biAlign;

	if(m_pTransfered==NULL)
		m_pTransfered=(unsigned char*) malloc (bmSize);
	if(m_pTransfered==NULL)
		return;
	//圖像矩陣的坐標
	int x,y,cur;
	//圖像數(shù)據(jù)與圖像處理數(shù)據(jù)的存放空間
	short **spOriginData, **spTransData0;
	spOriginData = new short* [biHeight];
	spTransData0 = new short* [biHeight];
	//分配數(shù)據(jù)的內(nèi)存空間
	for(int i = 0; i < biHeight; i ++)
	{
		spOriginData[i] = new short [biWidth];
		spTransData0[i] = new short [biWidth];
	}
	//創(chuàng)建數(shù)字處理類
	CWaveletNibianhua *pDip;
	//如果圖像只經(jīng)過一次小波變換,則進行相應(yīng)的逆變換
   
	for (i=0;i<=2;i++)
	{
		for(y=0; y<(int)biHeight; y++)
		{
			for(x=0; x<(int)biWidth; x++)
			{
				cur= y*biAlign+3*x;	
				m_WaveletCoeff[biHeight-1-y][x]=m_pstore[cur+i];
			}
		}

	if(m_bOnce)
	{
		pDip->FuYuan(spOriginData, spTransData0, m_WaveletCoeff,biHeight,biHeight/2,biWidth,biWidth/2,1,1.414);
		if (i==2)
		  m_bOnce = FALSE;
	    //delete m_WvltCoeff;
	}
	//如果圖像只經(jīng)過兩次小波變換,則進行相應(yīng)的逆變換
	else if(m_bTwice)
	{
		pDip->FuYuan(spOriginData, spTransData0, m_WaveletCoeff,biHeight ,biHeight/2,biWidth,biWidth/2,2,1.414);
		if (i==2)
			m_bTwice = FALSE;
		
	}
	//如果圖像只經(jīng)過三次小波變換,則進行相應(yīng)的逆變換
	else if(m_bTribl)
	{
		pDip->FuYuan(spOriginData, spTransData0, m_WaveletCoeff, biHeight, biHeight/2,biWidth,biWidth/2,3,1.414);
		if (i==2)
			m_bTribl = FALSE;
		//delete m_WvltCoeff;
		
	}
	//判斷是否有小波系數(shù)可以進行圖像的復(fù)原
	else if(m_bFilter)
	{
		MessageBoxA(NULL,_T("沒有找到可用小波系數(shù),或者是未做小波變換"),_T("Message"),MB_ICONEXCLAMATION|MB_OK);
		m_bFilter = FALSE;
	}
	//將圖像數(shù)據(jù)放入顯示緩存中
	
	for(y=0; y<(int)biHeight; y++)
	{
		for(x=0; x<(int)biWidth; x++)
		{
			cur= y*biAlign+3*x;		//current pixel	
			m_pTransfered[cur+i]= (unsigned char)spOriginData[biHeight-1-y][x];
		}
	}

	}//for i
    delete m_WaveletCoeff;
	m_WaveletCoeff=NULL;
	//顯示圖像復(fù)原的結(jié)果
	UpdateAllViews(NULL);
	//刪除臨時的數(shù)據(jù)內(nèi)存空間
	delete spOriginData;
	delete spTransData0;
}

void CWaveletDoc::OnCodeEzw() 
{
	// TODO: Add your command handler code here
	CEzwCode Ezw;
	int k=0;
	LPBITMAPINFOHEADER lpBitmapInfoHeader = (LPBITMAPINFOHEADER)(m_pBitmap+14);

	int biHeight = lpBitmapInfoHeader->biHeight;
	int biWidth = lpBitmapInfoHeader->biWidth;
	for (k=0;k<=2;k++)
		Ezw.EzwQualitition(minthr,biHeight,biWidth,k,m_pstore,&fsize);
	return;	

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频精品免费视频| 91免费视频网址| 日韩一区二区精品葵司在线| 日韩专区一卡二卡| 日韩一区二区在线观看视频播放| 91精品一区二区三区在线观看| 亚洲成人免费在线| 欧美日韩一区二区三区不卡| 亚洲妇女屁股眼交7| 欧美一区二区三区视频在线观看| 久久99精品国产麻豆婷婷| 国产区在线观看成人精品| 99视频一区二区| 精品无码三级在线观看视频| 亚洲图片一区二区| 亚洲欧美激情在线| 欧美电影在哪看比较好| 国产精品亚洲一区二区三区妖精 | 久久蜜桃av一区二区天堂 | 麻豆国产91在线播放| 日韩视频一区二区在线观看| 欧洲亚洲国产日韩| 久久99久久久久久久久久久| 国产日韩欧美麻豆| 精品国产一二三| 99re免费视频精品全部| 日韩av电影一区| 亚洲欧美在线视频| 欧美猛男男办公室激情| 国产精品自拍毛片| 黄色成人免费在线| 亚洲一区二区在线免费观看视频| 欧美成人三级电影在线| 日本韩国一区二区| 国产精品亚洲第一区在线暖暖韩国 | 亚洲午夜免费视频| 亚洲综合视频网| 亚洲图片有声小说| 亚洲bt欧美bt精品777| 视频在线观看91| 亚洲成人三级小说| 日本不卡视频一二三区| 日韩一区日韩二区| 亚洲欧美一区二区三区久本道91 | 国产精品白丝jk黑袜喷水| 黑人巨大精品欧美黑白配亚洲| 日本成人中文字幕| 久久国产精品一区二区| 激情六月婷婷久久| 国产精品一区二区果冻传媒| 国产夫妻精品视频| 麻豆高清免费国产一区| 日本va欧美va瓶| 精品一区二区三区免费播放 | 色呦呦国产精品| 国产精品羞羞答答xxdd| 成人综合婷婷国产精品久久| 精品一区二区在线视频| 国产91色综合久久免费分享| 久久国产视频网| 国产91丝袜在线播放九色| 91日韩一区二区三区| 欧美日韩一区二区电影| 精品国产一区二区三区忘忧草 | 中文字幕一区二区三区在线播放| 亚洲天堂久久久久久久| 国产精品毛片久久久久久| 久久久久久久电影| **欧美大码日韩| 日日夜夜精品免费视频| 国产一区二区不卡老阿姨| 久久精品国产亚洲a| 丁香婷婷综合激情五月色| 色偷偷成人一区二区三区91| 欧美老肥妇做.爰bbww| 欧美精品一区二区精品网| 日韩理论电影院| 秋霞影院一区二区| 成人一区二区视频| 欧美精品在线一区二区| 国产三级三级三级精品8ⅰ区| 久久久久久麻豆| 一区二区三区色| 五月天精品一区二区三区| 亚洲v中文字幕| 国产精品一线二线三线| 91成人免费在线视频| 精品乱码亚洲一区二区不卡| 亚洲男人天堂一区| 精品在线视频一区| 欧洲一区二区av| 亚洲国产精品v| 综合欧美一区二区三区| 免费欧美在线视频| 91福利在线看| 日本一区二区成人在线| 三级不卡在线观看| 色综合天天综合狠狠| 欧美中文字幕一区二区三区亚洲| 久久久精品综合| 婷婷久久综合九色综合绿巨人 | 国产成人在线免费| 欧美日韩国产精品自在自线| 久久国产精品72免费观看| 91影院在线观看| 精品福利一区二区三区| 亚洲一区二区在线视频| 波多野结衣精品在线| 欧美成人三级在线| 日韩专区欧美专区| 欧美中文字幕亚洲一区二区va在线 | 老司机精品视频一区二区三区| 91麻豆国产福利在线观看| 久久久久久久久久久99999| 日韩二区在线观看| 欧美三电影在线| 亚洲欧美激情插| 成人免费高清视频在线观看| 2022国产精品视频| 国产精品家庭影院| 日一区二区三区| 欧美三级乱人伦电影| 玉米视频成人免费看| 日韩电影在线免费看| 欧美色图天堂网| 国产拍欧美日韩视频二区| 精品一区二区三区视频| 日韩女优电影在线观看| 成人欧美一区二区三区视频网页 | 亚洲一区二区3| 日本高清成人免费播放| 亚洲视频一二三| 日本乱码高清不卡字幕| 亚洲色图欧美偷拍| 一本色道综合亚洲| 一区二区三区视频在线看| 日本高清不卡aⅴ免费网站| 一区二区三区在线影院| 在线观看不卡一区| 亚洲成人av一区| 欧美一区二区三区在线观看视频| 日韩在线一区二区| 日韩一区二区视频在线观看| 毛片av一区二区三区| 精品国产乱码久久久久久久久| 免费成人av在线播放| 久久综合九色综合97婷婷| 国产乱码一区二区三区| 欧美国产一区二区在线观看| 粉嫩av一区二区三区在线播放| 国产精品国产三级国产aⅴ原创| 91老师片黄在线观看| 亚洲国产乱码最新视频| 欧美一区二区三区免费大片| 久久激五月天综合精品| 国产区在线观看成人精品| 色综合视频一区二区三区高清| 亚洲综合激情小说| 日韩一区二区电影| 懂色av一区二区三区免费观看| 成人免费视频在线观看| 欧美性猛交xxxxxxxx| 老司机精品视频线观看86| 亚洲国产精品激情在线观看| 色婷婷av一区二区三区gif | 日本aⅴ精品一区二区三区| 337p日本欧洲亚洲大胆精品| 成人精品在线视频观看| 亚洲国产一区视频| 精品国产乱码久久久久久浪潮 | 中文在线一区二区| 欧美性感一区二区三区| 久久99久久精品欧美| 中文字幕亚洲不卡| 欧美丰满少妇xxxxx高潮对白| 国产麻豆视频一区二区| 中文字幕一区二区三区在线不卡| 欧美精品v日韩精品v韩国精品v| 麻豆91小视频| 亚洲日本va在线观看| 日韩一级精品视频在线观看| 成人激情免费网站| 国产精品久99| 欧美电影影音先锋| aaa国产一区| 久久99国产乱子伦精品免费| 亚洲欧洲av在线| 精品区一区二区| 在线观看日韩精品| 国产成人在线影院| 日韩精品一二三区| 日韩理论电影院| 久久精品综合网| 51精品秘密在线观看| 播五月开心婷婷综合| 青青草91视频| 亚洲精品成人天堂一二三| 国产欧美日韩在线看| 欧美一区二区三区在线视频| 91热门视频在线观看|