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

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

?? wavelet.c

?? 97提升小波程序(二代小波)
?? C
字號:

#include "wavelet.h"	
	
void WaveletForward2D(int *data, int height, int width, int level)
{
	int m,n,datalen1,datalen2,data1,data2;
	int *buffer;

	if ((buffer = (int *) malloc (max(height, width) * sizeof(int))) == NULL)
	{
		printf("fail to allocate buffer.\n");
		exit(1);
	}

	datalen1 = width;
	datalen2 = height;


	for(m=0;m<height;m++)
	{
		for(n=0;n<width;n++)
		{
			*(data+m*width+n)=*(data+m*width+n)*1;
		}
	}
    for (m = 0; m < level; m++) 
	{
		for (n = 0; n < datalen2; n++)
		{
			CopyRow(buffer, data + n * width, datalen1);
			WaveletForward1D(buffer, datalen1);
			CopyRow(data + n * width, buffer, datalen1);
		}
		
		for (n = 0; n < datalen1; n++)
		{
			CopyCol(buffer, data + n, width, datalen2);
			WaveletForward1D(buffer, datalen2);
			CopyColBack(data + n, buffer, width, datalen2);
		}
		datalen1=datalen1/2;
		datalen2=datalen2/2;
	}

	free(buffer);
	data1=*data;
	data2=*data;
	for(m=0;m<height;m++)
	{
		for(n=0;n<width;n++)
		{
			if(data1>=data[m*width+n])
			{
				data1=data[m*width+n];
			}
			if(data2<=data[m*width+n])
			{
				data2=data[m*width+n];
			}
		}
	}
	printf("min=%d,max=%d\n",data1,data2);
}

void WaveletForward1D(int *data, int Datalen)
{
	int c;
	int mid = Datalen/2;
	int *d,*s;
	if ((d = (int *) malloc (mid * sizeof(int))) == NULL)
	{
		printf("fail to allocate d.\n");
		exit(1);
	}
	if ((s = (int *) malloc (mid * sizeof(int))) == NULL)
	{
		printf("fail to allocate s.\n");
		exit(1);
	}

	for(c=0;c<mid;c++)
	{
		*(s+c)=*(data+2*c);
		*(d+c)=*(data+2*c+1);
	}

	for(c=0;c<mid-1;c++)
	{
		*(d+c)+=(int)floor(ALPHA*(*(s+c)+*(s+c+1))+0.5);
	}
	*(d+mid-1)+=(int)floor(ALPHA*(*(s+mid-1))*2+0.5);

	*s+=(int)floor(BELTA*(*d)*2+0.5);
	for(c=1;c<mid;c++)
	{
		*(s+c)+=(int)floor(BELTA*(*(d+c-1)+*(d+c))+0.5);
	}

	for(c=0;c<mid-1;c++)
	{
		*(d+c)+=(int)floor(GAMMA*(*(s+c)+*(s+c+1))+0.5);
	}
	*(d+mid-1)+=(int)floor(GAMMA*(*(s+mid-1))*2+0.5);

	*s+=(int)floor(DELTA*(*d)*2+0.5);
	for(c=1;c<mid;c++)
	{
		*(s+c)+=(int)floor(DELTA*(*(d+c-1)+*(d+c))+0.5);
	}

	for(c=0;c<mid;c++)
	{
		*(d+c)+=*(s+c);
	}

	for(c=0;c<mid;c++)
	{
		*(s+c)+=(int)floor((ROW-1)*(*(d+c))+0.5);
	}

	for(c=0;c<mid;c++)
	{
		*(d+c)+=(int)floor(0-(*(s+c)/ROW)+0.5);
		*(s+c)+=(int)floor((ROW-ROW*ROW)*(*(d+c))+0.5);
	}

	for(c=0;c<mid;c++)
	{
		*(data+c)=*(s+c);
		*(data+c+mid)=*(d+c);
	}

	free(d);
	free(s);
}

void WaveletInvert2D(int *data, int height, int width, int level)
{
	int m,n,datalen1,datalen2;
	int *buffer;
	if ((buffer = (int *) malloc (max(height, width) * sizeof(int))) == NULL)
	{
		printf("fail to allocate buffer.\n");
		exit(1);
	}

	datalen1 = (int)(width/pow(2,(level-1)));
	datalen2 = (int)(height/pow(2,(level-1)));

    for (m = 0; m < level; m++) 
	{
		for (n = 0; n < datalen1; n++)
		{
			CopyCol(buffer, data + n, width, datalen2);
			WaveletInvert1D(buffer, datalen2);
			CopyColBack(data + n, buffer, width, datalen2);
		}

		for (n = 0; n < datalen2; n++)
		{
			CopyRow(buffer, data + n * width, datalen1);
			WaveletInvert1D(buffer, datalen1);
			CopyRow(data + n * width, buffer, datalen1);
		}
		
		datalen1=datalen1*2;
		datalen2=datalen2*2;
	}
	for(m=0;m<height;m++)
	{
		for(n=0;n<width;n++)
		{
			*(data+m*width+n)=*(data+m*width+n)/1;
		}
	}

	free(buffer);
}

void WaveletInvert1D(int *data, int Datalen)
{
	int c;
	int mid = Datalen/2;
	int *d,*s;
	if ((d = (int *) malloc (mid * sizeof(int))) == NULL)
	{
		printf("fail to allocate d.\n");
		exit(1);
	}
	if ((s = (int *) malloc (mid * sizeof(int))) == NULL)
	{
		printf("fail to allocate s.\n");
		exit(1);
	}

	for(c=0;c<mid;c++)
	{
		*(s+c)=*(data+c);
		*(d+c)=*(data+mid+c);
	}

	for(c=0;c<mid;c++)
	{
		*(s+c)-=(int)floor((ROW-ROW*ROW)*(*(d+c))+0.5);
		*(d+c)-=(int)floor(0-(*(s+c)/ROW)+0.5);
	}

	for(c=0;c<mid;c++)
	{
		*(s+c)-=(int)floor((ROW-1)*(*(d+c))+0.5);
	}
	for(c=0;c<mid;c++)
	{
		*(d+c)-=*(s+c);
	}

	*s-=(int)floor(DELTA*(*d)*2+0.5);
	for(c=1;c<mid;c++)
	{
		*(s+c)-=(int)floor(DELTA*(*(d+c-1)+*(d+c))+0.5);
	}
	
	for(c=0;c<mid-1;c++)
	{
		*(d+c)-=(int)floor(GAMMA*(*(s+c)+*(s+c+1))+0.5);
	}
	*(d+mid-1)-=(int)floor(GAMMA*(*(s+mid-1))*2+0.5);

	for(c=1;c<mid;c++)
	{
		*(s+c)-=(int)floor(BELTA*(*(d+c-1)+*(d+c))+0.5);
	}
	*s-=(int)floor(BELTA*(*d)*2+0.5);

	for(c=0;c<mid-1;c++)
	{
		*(d+c)-=(int)floor(ALPHA*(*(s+c)+*(s+c+1))+0.5);
	}
	*(d+mid-1)-=(int)floor(ALPHA*(*(s+mid-1))*2+0.5);
	
	for(c=0;c<mid;c++)
	{
		*(data+2*c)=*(s+c);
		*(data+2*c+1)=*(d+c);
	}

	free(d);
	free(s);

}
void CopyRow(int *DstData, int *SrcData, int TransWidth)
{
	int n;

	for (n = 0; n < TransWidth; n++)
	{
		DstData[n] = SrcData[n];
	}
}


void CopyCol(int *DstData, int *SrcData, int width, int TransHeight)
{
	int n;

	for (n = 0; n < TransHeight; n++)
	{
		DstData[n] = SrcData[n * width];
	}
}


void CopyColBack(int *DstData, int *SrcData, int width, int TransHeight)
{
	int n;

	for (n = 0; n < TransHeight; n++)
	{
		DstData[n * width] = SrcData[n];
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国女主播成人在线观看| 国产精品久久久久婷婷| 在线观看日韩毛片| 91亚洲国产成人精品一区二区三| 久久99精品久久久久久动态图| 青青草97国产精品免费观看无弹窗版| 亚洲一区二区三区中文字幕| 亚洲在线视频网站| 日韩成人一级大片| 国内精品第一页| 国产成人在线观看| 93久久精品日日躁夜夜躁欧美| 99热国产精品| 日本精品一区二区三区高清 | 激情综合色综合久久| 美女一区二区三区在线观看| 久久精品国产99久久6| 精品一区二区三区免费| 国产福利一区在线| 91福利资源站| 337p亚洲精品色噜噜| 亚洲精品一区二区三区四区高清| 国产午夜亚洲精品不卡| 一区二区三区丝袜| 日本中文字幕一区二区有限公司| 国产综合色精品一区二区三区| 国产99久久久国产精品潘金| 色综合天天狠狠| 日韩女优电影在线观看| 国产精品美女一区二区三区 | 日韩成人免费电影| 国产精品996| 精品视频一区 二区 三区| 精品久久五月天| 亚洲美女精品一区| 久久er精品视频| 日本久久一区二区| 久久久久9999亚洲精品| 午夜视频在线观看一区二区| 国产乱码精品一区二区三区忘忧草| 色婷婷综合久久| 国产亚洲短视频| 石原莉奈在线亚洲三区| 成人av在线资源网| 欧美草草影院在线视频| 亚洲午夜精品网| 国产91精品一区二区麻豆网站| 7777精品伊人久久久大香线蕉的| 国产日产欧产精品推荐色| 日韩精品免费视频人成| 99国产精品久久久久久久久久久| 日韩视频在线你懂得| 一区二区三区欧美视频| 不卡视频在线看| www日韩大片| 久久精品免费观看| 欧美四级电影网| 国产精品你懂的在线| 国内精品不卡在线| 欧美一区二视频| 亚洲制服丝袜一区| 色婷婷激情综合| 国产精品久久久久久久久免费相片 | 91精品国产福利在线观看| 日韩理论片一区二区| 成人丝袜高跟foot| 国产欧美日韩麻豆91| 精品一区二区在线观看| 日韩欧美国产电影| 麻豆91在线看| 日韩欧美在线观看一区二区三区| 丝袜a∨在线一区二区三区不卡| 色综合久久久久久久久久久| 国产精品久久毛片av大全日韩| 国产一区欧美一区| 久久久久久久久久久久久女国产乱| 久久国内精品自在自线400部| 欧美一级精品大片| 麻豆91在线看| 国产亚洲综合在线| 北条麻妃一区二区三区| 国产精品久久久久久亚洲伦| av午夜精品一区二区三区| 中文字幕五月欧美| 在线精品视频一区二区三四| 亚洲黄色av一区| 欧美猛男gaygay网站| 青青草国产成人av片免费| 欧美成人福利视频| 国产成人午夜视频| 亚洲欧美日韩一区二区三区在线观看| 色一情一乱一乱一91av| 午夜一区二区三区视频| 日韩午夜电影av| 成人午夜激情在线| 亚洲精品综合在线| 69堂成人精品免费视频| 国产一区在线观看视频| 国产精品大尺度| 欧美日本国产一区| 国产一区欧美二区| 亚洲精品老司机| 91精品国产色综合久久ai换脸 | 中文字幕亚洲一区二区va在线| 色婷婷久久久综合中文字幕| 亚洲成国产人片在线观看| 精品国产免费一区二区三区四区| 国产91在线看| 日韩影院精彩在线| 国产精品免费免费| 911精品产国品一二三产区| 国产精品自在欧美一区| 成人欧美一区二区三区黑人麻豆 | 日韩国产精品久久| 国产精品视频一区二区三区不卡| 91视频91自| 国产一区91精品张津瑜| 亚洲欧美成人一区二区三区| 日韩欧美一级精品久久| 99久久777色| 韩日欧美一区二区三区| 亚洲欧美另类图片小说| 久久色中文字幕| 欧美美女喷水视频| 91网站视频在线观看| 极品尤物av久久免费看| 亚洲成av人影院| 亚洲品质自拍视频| 国产亚洲综合在线| 欧美成人午夜电影| 欧美丰满嫩嫩电影| 欧洲国产伦久久久久久久| 成人精品免费看| 久久99国内精品| 日日夜夜免费精品视频| 亚洲一区二区视频在线观看| 中文字幕亚洲在| 国产欧美日韩在线看| wwwwxxxxx欧美| 日韩小视频在线观看专区| 欧美三级蜜桃2在线观看| 一本色道久久综合狠狠躁的推荐| 国产精品一区二区久久精品爱涩| 麻豆免费精品视频| 日本不卡不码高清免费观看| 亚洲v精品v日韩v欧美v专区| 亚洲桃色在线一区| 最新热久久免费视频| 国产精品久久毛片| 国产精品系列在线| 国产精品久久午夜夜伦鲁鲁| 久久精品亚洲精品国产欧美| 亚洲精品一区二区三区在线观看| 日韩一区二区三区电影在线观看 | 韩国成人精品a∨在线观看| 蜜芽一区二区三区| 日本不卡免费在线视频| 日韩高清不卡在线| 久久狠狠亚洲综合| 国产综合成人久久大片91| 奇米在线7777在线精品| 免费视频最近日韩| 国产毛片精品国产一区二区三区| 久草精品在线观看| 成人中文字幕合集| 成人高清在线视频| 91国产丝袜在线播放| 欧美调教femdomvk| 欧美va日韩va| 中文字幕+乱码+中文字幕一区| 亚洲欧洲日韩在线| 亚洲精品久久7777| 免费在线观看成人| 国产风韵犹存在线视精品| www.久久久久久久久| 91福利在线播放| 欧美va日韩va| 日韩一区中文字幕| 亚洲www啪成人一区二区麻豆| 免费高清在线一区| 成人avav影音| 欧美日韩夫妻久久| 久久综合狠狠综合久久激情| 中文字幕制服丝袜一区二区三区 | 91精品国产色综合久久不卡蜜臀| 久久久www免费人成精品| 国产精品不卡视频| 午夜久久久久久| 成人毛片视频在线观看| 欧美吞精做爰啪啪高潮| 久久夜色精品国产噜噜av| 一区二区三区在线观看网站| 另类综合日韩欧美亚洲| 色诱亚洲精品久久久久久| 欧美成人三级在线| 伊人性伊人情综合网| 国产精品正在播放| 欧美精品丝袜中出| 亚洲欧美视频在线观看| 国产激情视频一区二区三区欧美 |