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

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

?? wpacket.c

?? 用C++語言實現的基于小波分析的源代碼,實現了小波分析的諸多算法
?? C
字號:
/*********************

	the activity measure for deciding whether to transform a level
	is critical.  The ideal measure is of course actually packing	
	it (that's a hassle cuz you've got to correctly assign parents
	and whatnot).

	In particular, we need to take the 'quantizer' into account.

************************/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <crblib/inc.h>

#include <wtlib/subbands.h>
#include <wtlib/image.h>
#include <wtlib/coder.h>
#include <wtlib/quantim.h>

subband_node *new_subband_node();
subband_node *new_subband_node_foliated();
subband_leaf *new_subband_leaf();

void transLeafToQuadMaybe(subband ** sb_ptr,int levels,int trans)
{
subband_leaf *sbl;
subband *sb;
int oldact;

	sbl = (subband_leaf *) *sb_ptr;
	if ( sbl->width < 4 ) return;

	activitySubbands((subband *)sbl);
	oldact = sbl->activity;

	transQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,0,trans);

	activitySubbands((subband *)sbl);
	/**
	*	the details of the "activity" measurement are critical for this decision
	*	mse & rmse seem quite poor
	*	the percentage of nonzeros seems to be best
	***/
#if 0
	if ( sbl->activity <= oldact ) {
		// on images where WP helps, this helps more, but on images
		//	where it hurts, this hurts even more
#else
	if ( sbl->activity <  oldact ) {
#endif
		// buono

		sb = makeSubbandQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,0,sbl->prev);
	
		free(sbl);

		*sb_ptr = sb;

		if ( levels ) {
			transLeafToQuadMaybe(&(sb->LL),levels-1,trans);
			transLeafToQuadMaybe(&(sb->LH),levels-1,trans);
			transLeafToQuadMaybe(&(sb->HL),levels-1,trans);
			transLeafToQuadMaybe(&(sb->HH),levels-1,trans);
		}
	} else {
		// undo it
		transQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,1,trans);
	}
}

subband * transLeafToQuad(subband_leaf *sbl,int levels,bool doWP,int trans)
{
subband *sb;

	transQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,0,trans);

	sb = makeSubbandQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,0,sbl->prev);
	
	free(sbl);

	if ( levels ) {
		sb->LL = transLeafToQuad((subband_leaf *)sb->LL,levels-1,doWP,trans);
		if ( doWP && levels > 1 ) {
			/** makes sure that wavelet packets have proper parents **/
			transLeafToQuadMaybe(&(sb->LH),levels-2,trans);
			transLeafToQuadMaybe(&(sb->HL),levels-2,trans);
			transLeafToQuadMaybe(&(sb->HH),levels-2,trans);
		}
	}

return sb;
}

void detransSubbands(subband *sb,int trans)
{
	if ( !sb || sb->leaf ) return;
	detransSubbands(sb->LL,trans);
	detransSubbands(sb->LH,trans);
	detransSubbands(sb->HL,trans);
	detransSubbands(sb->HH,trans);
	if ( sb->width ) {
		int w,h,fw;
		w = sb->width; fw = sb->width + sb->rowpad;
		h = sb->height;
		while( ! sb->leaf ) sb = sb->LL;
		
		transQuad(((subband_leaf *)sb)->band,w,h,fw,1,trans);
	}
}

subband * transPlaneSubbands(image *im,int plane,int levels,bool doWP,int trans)
{
subband_leaf * sbl;
	sbl = new_subband_leaf();
	sbl->band = im->data[plane][0];
	sbl->width = im->width;
	sbl->height= im->height;
	sbl->rowpad = 0;
	if ( levels )
		return transLeafToQuad(sbl,levels-1,doWP,trans);
	else
		return (subband *)sbl;
}


subband * transImageSubbands(image *im,int levels,bool doWP,int trans)
{
	if ( im->planes <= 1 ) return transPlaneSubbands(im,0,levels,doWP,trans);
	else {
		subband_node * sb;
		sb = new_subband_node();
		if ( im->planes >= 1 ) sb->LL = transPlaneSubbands(im,0,levels,doWP,trans);
		if ( im->planes >= 2 ) sb->LH = transPlaneSubbands(im,1,levels,doWP,trans);
		if ( im->planes >= 3 ) sb->HL = transPlaneSubbands(im,2,levels,doWP,trans);
		if ( im->planes >= 4 ) sb->HH = transPlaneSubbands(im,3,levels,doWP,trans);
		if ( im->planes >= 5 ) errexit("too many planes for my cheezy ass");
		return sb;
	}
}

wavelet * makeSubband(image *im,int levels,double q,
	int stoplen,const coder *coder_template,
	bool doWP,int transformN)
{
wavelet * w;

	if ( (w = newWavelet(im,levels)) == NULL )
		return NULL;

	w->stoplen = stoplen;
	w->coder_template = coder_template;
	w->transform = transformN;

	w->qi = findQuantizers(0,0,q, NULL,levels,0,NULL);

	w->subband_root = transImageSubbands(im,levels,doWP,transformN);

	transposeSubbandLHs(w->subband_root);

	if ( q != 1.0 ) quantizeImage(im,levels,w->qi);

	activitySubbands(w->subband_root);

return w;
}


void unSubband(wavelet * w)
{

	if ( w->qi && w->qi->nquants > 0 ) dequantizeImage(w->im,w->levels,w->qi);

	transposeSubbandLHs(w->subband_root);

	detransSubbands(w->subband_root,w->transform);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合免费观看高清完整版| 777午夜精品视频在线播放| 2023国产精品视频| 在线成人免费观看| 亚洲精品成a人| 在线成人午夜影院| 亚洲一区二区三区四区在线免费观看| 欧美三级电影在线看| 精品国产三级电影在线观看| 午夜精品久久久久久久蜜桃app| 国产成人精品免费网站| 日韩三区在线观看| 亚洲国产精品久久久久婷婷884 | 国产精品自在欧美一区| 欧美三电影在线| 亚洲欧美日韩一区二区三区在线观看| 国产毛片精品国产一区二区三区| 欧美一区二区三区四区久久| 亚洲自拍偷拍欧美| 99久久精品99国产精品| 中日韩av电影| 国产成人精品一区二区三区四区| 欧美精品一区二区在线播放| 美女一区二区三区在线观看| 欧美一区二区三区在线视频| 亚洲成人一区在线| 欧美在线free| 亚洲成人精品在线观看| 欧美日韩国产美| 日韩影院精彩在线| 9191成人精品久久| 日本在线不卡视频| 精品久久久久久亚洲综合网| 首页综合国产亚洲丝袜| 欧美一级精品在线| 激情综合网最新| 精品久久人人做人人爽| 国产丶欧美丶日本不卡视频| 国产午夜精品理论片a级大结局| 国产精品一区二区黑丝| 国产精品福利影院| 色综合激情五月| 婷婷综合久久一区二区三区| 欧美疯狂做受xxxx富婆| 麻豆中文一区二区| 国产色91在线| 99久久婷婷国产综合精品| 亚洲精品国产精品乱码不99| 欧美群妇大交群中文字幕| 蜜臀91精品一区二区三区| 欧美一区二区二区| 精品综合免费视频观看| 国产欧美一二三区| 一本色道久久综合狠狠躁的推荐 | 蜜乳av一区二区| 国产亚洲精品aa午夜观看| 91热门视频在线观看| 亚洲成人精品一区| 欧美成人精品3d动漫h| 成人免费av资源| 婷婷夜色潮精品综合在线| 精品国产凹凸成av人网站| 91香蕉视频在线| 免费人成网站在线观看欧美高清| 国产亚洲一区二区三区| 色哟哟在线观看一区二区三区| 日韩精彩视频在线观看| 国产亚洲精品aa| 欧美美女bb生活片| 91网站视频在线观看| 日本成人中文字幕在线视频| 欧美激情在线一区二区| 欧美日产国产精品| 成人免费精品视频| 秋霞国产午夜精品免费视频| 中文字幕亚洲欧美在线不卡| 91精品国产综合久久香蕉的特点| 成人在线一区二区三区| 日韩国产欧美在线播放| 亚洲视频一区二区在线观看| 精品国产免费一区二区三区香蕉| 日本精品一区二区三区四区的功能| 精品一区二区久久久| 亚洲国产美女搞黄色| 国产精品美女久久久久久久| 欧美一级日韩免费不卡| 在线观看亚洲成人| 国产a视频精品免费观看| 日日噜噜夜夜狠狠视频欧美人| 亚洲欧洲一区二区在线播放| 久久综合精品国产一区二区三区| 欧美日韩免费观看一区二区三区| 粉嫩13p一区二区三区| 国内精品免费**视频| 午夜久久福利影院| 亚洲欧美一区二区三区国产精品| 久久色.com| 精品久久久久久久一区二区蜜臀| 欧美人xxxx| 欧美日韩色综合| 欧美色图12p| 欧洲精品中文字幕| 在线观看www91| 日本二三区不卡| 日本久久电影网| 91国在线观看| 91成人看片片| 精品视频1区2区| 欧美视频日韩视频| 欧美亚洲国产一区二区三区| 色偷偷成人一区二区三区91| 色又黄又爽网站www久久| 99精品久久99久久久久| 99久久er热在这里只有精品15 | 成人免费视频国产在线观看| 国产精品一区一区三区| 国产91在线观看丝袜| 国产成人精品三级| 成人在线综合网站| www.日本不卡| 欧美亚洲综合色| 5858s免费视频成人| 精品欧美一区二区久久| 2019国产精品| 国产精品女主播av| 亚洲女性喷水在线观看一区| 伊人开心综合网| 日韩不卡手机在线v区| 免费xxxx性欧美18vr| 国产精品一区二区久久不卡| 波多野结衣视频一区| 在线中文字幕不卡| 91精品婷婷国产综合久久| 欧美大片国产精品| 国产精品免费视频网站| 亚洲靠逼com| 六月丁香综合在线视频| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 欧美a级理论片| 国产成人av自拍| 欧洲av在线精品| 欧美不卡一二三| 国产精品福利一区二区三区| 五月天精品一区二区三区| 国产一区二区三区香蕉| 91农村精品一区二区在线| 欧美老女人在线| 国产午夜精品美女毛片视频| 一区二区三区中文字幕电影 | 欧美tk—视频vk| 中文字幕一区二区三区色视频 | 99riav久久精品riav| 欧美群妇大交群的观看方式| 久久久久久久久久久久久久久99 | 中文字幕不卡三区| 亚洲国产日韩a在线播放性色| 精品无码三级在线观看视频| 99re热视频这里只精品| 欧美电影免费观看高清完整版在线| 国产精品乱子久久久久| 秋霞午夜鲁丝一区二区老狼| 色综合久久久久网| 337p粉嫩大胆噜噜噜噜噜91av| 一区二区三区不卡视频| 国产馆精品极品| 日韩欧美国产小视频| 亚洲影视在线观看| 99在线视频精品| 久久久影院官网| 美女视频一区二区| 欧美无砖专区一中文字| 亚洲欧洲www| 国内欧美视频一区二区 | 精品无人码麻豆乱码1区2区 | 午夜精品福利一区二区三区av| 成人一区二区视频| 337p日本欧洲亚洲大胆精品| 日本中文字幕一区二区视频| 欧美最猛性xxxxx直播| 国产精品成人在线观看| 国产乱国产乱300精品| 日韩情涩欧美日韩视频| 亚洲一区视频在线| 色婷婷av一区二区三区软件| 国产精品视频第一区| 国产精品一区二区在线播放| 欧美xxxxxxxxx| 蜜臀99久久精品久久久久久软件| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 中文字幕日本不卡| 波波电影院一区二区三区| 欧美激情在线一区二区| 国产精品12区| 欧美韩国日本综合| 国产v综合v亚洲欧| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品 日产精品 欧美精品| 欧美国产精品v| 99re热视频这里只精品| 亚洲欧美一区二区久久|