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

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

?? gabor.c

?? gabor 小波matlab變換,與C結合
?? C
字號:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "matrix.h"

/* --------------------------------------------------------------------------------------
The GaborFilteredImg provides the outputs of the Gabor filter bank
-----------------------------------------------------------------------------------------*/
void GaborFilteredImg(Matrix *FilteredImg_real, Matrix *FilteredImg_imag, Matrix *img, int side, double Ul, double Uh, 
int scale, int orientation, int flag)
{
	int h, w, xs, ys, border, r1, r2, r3, r4, hei, wid, s, n;
	Matrix *IMG, *IMG_imag, *Gr, *Gi, *Tmp_1, *Tmp_2, *F_1, *F_2, *G_real, *G_imag, *F_real, *F_imag;

	void Gabor(Matrix *Gr, Matrix *Gi, int s, int n, double Ul, double Uh, int scale, int orientation, int flag);

	border = side;
	hei = img->height;
	wid = img->width;

	/* FFT2 */
	xs = (int) pow(2.0, ceil(log2((double)(img->height+2.0*border))));
	ys = (int) pow(2.0, ceil(log2((double)(img->width+2.0*border))));

	CreateMatrix(&IMG, xs, ys);

	r1 = img->width+border;
	r2 = img->width+2*border;
	for (h=0;h<border;h++) {
		for (w=0;w<border;w++)
			IMG->data[h][w] = img->data[border-1-h][border-1-w];
		for (w=border;w<r1;w++)
			IMG->data[h][w] = img->data[border-1-h][w-border];
		for (w=r1;w<r2;w++)
			IMG->data[h][w] = img->data[border-1-h][2*img->width-w+border-1];
	}

	r1 = img->height+border;
	r2 = img->width+border;
	r3 = img->width+2*border;
	for (h=border;h<r1;h++) {
		for (w=0;w<border;w++)
			IMG->data[h][w] = img->data[h-border][border-1-w];
		for (w=border;w<r2;w++)
			IMG->data[h][w] = img->data[h-border][w-border];
		for (w=r2;w<r3;w++)
			IMG->data[h][w] = img->data[h-border][2*img->width-w+border-1];
	}

	r1 = img->height+border;
	r2 = img->height+2*border;
	r3 = img->width+border;
	r4 = img->width+2*border;
	for (h=r1;h<r2;h++) {
		for (w=0;w<border;w++)
			IMG->data[h][w] = img->data[2*img->height-h+border-1][border-1-w];
		for (w=border;w<r3;w++)
			IMG->data[h][w] = img->data[2*img->height-h+border-1][w-border];
		for (w=r3;w<r4;w++)
			IMG->data[h][w] = img->data[2*img->height-h+border-1][2*img->width-w+border-1];
	}

	CreateMatrix(&F_real, xs, ys);
	CreateMatrix(&F_imag, xs, ys);
	CreateMatrix(&IMG_imag, xs, ys);

	Mat_FFT2(F_real, F_imag, IMG, IMG_imag);

	/* ----------- compute the Gabor filtered output ------------- */

	CreateMatrix(&Gr, 2*side+1, 2*side+1);
	CreateMatrix(&Gi, 2*side+1, 2*side+1);
	CreateMatrix(&Tmp_1, xs, ys);
	CreateMatrix(&Tmp_2, xs, ys);
	CreateMatrix(&F_1, xs, ys);
	CreateMatrix(&F_2, xs, ys);
	CreateMatrix(&G_real, xs, ys);
	CreateMatrix(&G_imag, xs, ys);

	for (s=0;s<scale;s++) {
		for (n=0;n<orientation;n++) {
			Gabor(Gr, Gi, s+1, n+1, Ul, Uh, scale, orientation, flag);
			Mat_Copy(F_1, Gr, 0, 0, 0, 0, 2*side, 2*side);
			Mat_Copy(F_2, Gi, 0, 0, 0, 0, 2*side, 2*side);
			Mat_FFT2(G_real, G_imag, F_1, F_2);

			Mat_Product(Tmp_1, G_real, F_real);
			Mat_Product(Tmp_2, G_imag, F_imag);
			Mat_Substract(IMG, Tmp_1, Tmp_2);

			Mat_Product(Tmp_1, G_real, F_imag);
			Mat_Product(Tmp_2, G_imag, F_real);
			Mat_Sum(IMG_imag, Tmp_1, Tmp_2);

			Mat_IFFT2(Tmp_1, Tmp_2, IMG, IMG_imag);

			Mat_Copy(FilteredImg_real, Tmp_1, s*hei, n*wid, 2*side, 2*side, hei+2*side-1, wid+2*side-1);
			Mat_Copy(FilteredImg_imag, Tmp_2, s*hei, n*wid, 2*side, 2*side, hei+2*side-1, wid+2*side-1);
		}
	}

	FreeMatrix(Gr);
	FreeMatrix(Gi);
	FreeMatrix(Tmp_1);
	FreeMatrix(Tmp_2);
	FreeMatrix(F_1);
	FreeMatrix(F_2);
	FreeMatrix(G_real);
	FreeMatrix(G_imag);
	FreeMatrix(F_real);
	FreeMatrix(F_imag);
	FreeMatrix(IMG);
	FreeMatrix(IMG_imag);
}

/* ------------------------------------------------------------------------------------------------------
The Gabor function generates a Gabor filter with the selected index 's' and 'n' (scale and orientation, 
respectively) from a Gabor filter bank. This filter bank is designed by giving the range of spatial 
frequency (Uh and Ul) and the total number of scales and orientations used to partition the spectrum. 

The returned filter is stored in 'Gr' (real part) and 'Gi' (imaginary part).
--------------------------------------------------------------------------------------------------------*/
void Gabor(Matrix *Gr, Matrix *Gi, int s, int n, double Ul, double Uh, int scale, int orientation, int flag)
{
	double base, a, u0, z, Uvar, Vvar, Xvar, Yvar, X, Y, G, t1, t2, m;
	int x, y, side;

	base = Uh/Ul;
	a = pow(base, 1.0/(double)(scale-1));

	u0 = Uh/pow(a, (double) scale-s);

	Uvar = (a-1.0)*u0/((a+1.0)*sqrt(2.0*log(2.0)));

	z = -2.0*log(2.0)*(Uvar*Uvar)/u0;
	Vvar = tan(PI/(2*orientation))*(u0+z)/sqrt(2.0*log(2.0)-z*z/(Uvar*Uvar));

        Xvar = 1.0/(2.0*PI*Uvar);
        Yvar = 1.0/(2.0*PI*Vvar);

	t1 = cos(PI/orientation*(n-1.0));
	t2 = sin(PI/orientation*(n-1.0));

	side = (int) (Gr->height-1)/2;

	for (x=0;x<2*side+1;x++) {
		for (y=0;y<2*side+1;y++) {
			X = (double) (x-side)*t1+ (double) (y-side)*t2;
			Y = (double) -(x-side)*t2+ (double) (y-side)*t1;
			G = 1.0/(2.0*PI*Xvar*Yvar)*pow(a, (double) scale-s)*exp(-0.5*((X*X)/(Xvar*Xvar)+(Y*Y)/(Yvar*Yvar)));
			Gr->data[x][y] = G*cos(2.0*PI*u0*X);
			Gi->data[x][y] = G*sin(2.0*PI*u0*X);
		}
	}

	/* if flag = 1, then remove the DC from the filter */
	if (flag == 1) {
		m = 0;
		for (x=0;x<2*side+1;x++)
			for (y=0;y<2*side+1;y++)
				m += Gr->data[x][y];

		m /= pow((double) 2.0*side+1, 2.0);

		for (x=0;x<2*side+1;x++)
			for (y=0;y<2*side+1;y++)
				Gr->data[x][y] -= m;
	}	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区三区四区| 国产精品亲子乱子伦xxxx裸| 成人动漫中文字幕| 午夜欧美电影在线观看| 国产欧美日韩视频在线观看| 欧美群妇大交群的观看方式| 欧美电影免费观看完整版| www.日韩精品| 国产一区二区网址| 天堂在线亚洲视频| 中文字幕在线视频一区| 欧美精品一区男女天堂| 欧美日韩精品一区二区三区四区 | 国产成人午夜片在线观看高清观看| 亚洲欧美另类久久久精品2019| 久久影院电视剧免费观看| 欧美日韩精品欧美日韩精品| 波多野结衣欧美| 国产激情偷乱视频一区二区三区| 婷婷国产在线综合| 亚洲精选视频免费看| 中文字幕av一区二区三区免费看| 精品国产精品一区二区夜夜嗨| 欧美日韩在线电影| 色综合久久综合网| 99re这里只有精品视频首页| 国产一区二区三区国产| 久久精品国产精品亚洲红杏| 香蕉影视欧美成人| 亚洲精选视频免费看| 亚洲免费在线视频一区 二区| 国产亚洲欧美激情| 亚洲精品一区二区三区99| 日韩视频免费观看高清在线视频| 欧美精品一级二级| 9191久久久久久久久久久| 欧美日韩免费一区二区三区| 91成人在线观看喷潮| 91麻豆自制传媒国产之光| 不卡的看片网站| 91免费精品国自产拍在线不卡| 懂色av一区二区三区蜜臀| 国产成人福利片| 国产麻豆视频一区二区| 懂色一区二区三区免费观看| 国产成人在线视频网址| 国产不卡免费视频| 成人丝袜18视频在线观看| 不卡欧美aaaaa| 91美女在线观看| 欧美性xxxxx极品少妇| 欧美日韩精品一区二区三区| 欧美疯狂性受xxxxx喷水图片| 欧美福利视频一区| 日韩欧美另类在线| 久久久综合视频| 国产欧美日韩另类一区| 18成人在线观看| 一区二区三区四区在线| 午夜精品福利视频网站| 久久精品久久精品| 成人听书哪个软件好| 在线视频综合导航| 日韩欧美国产1| 中文字幕精品一区| 亚洲成av人片一区二区三区| 三级欧美在线一区| 国产精品一卡二卡在线观看| 成人h动漫精品一区二| 欧美视频在线观看一区二区| 日韩一区二区不卡| 中文字幕精品综合| 性感美女极品91精品| 国产精品一区在线观看乱码| 色综合天天综合网天天狠天天| 欧美日韩一本到| www国产精品av| 日韩一区欧美一区| 日韩av不卡在线观看| 成人一区二区三区中文字幕| 在线免费观看成人短视频| 欧美一二三区在线观看| 国产精品丝袜久久久久久app| 亚洲一线二线三线视频| 久久99热国产| 色噜噜狠狠成人中文综合| 日韩欧美国产综合在线一区二区三区| 久久久www成人免费毛片麻豆| 一区二区在线看| 国产一区二三区| 欧美性xxxxxxxx| 国产精品青草久久| 久久福利资源站| 91精品1区2区| 国产午夜精品一区二区三区视频 | 中文字幕va一区二区三区| 亚洲va欧美va人人爽| 国产成人精品免费网站| 欧美精品一卡两卡| 亚洲免费av观看| 国产精品亚洲第一| 日韩视频一区二区三区| 亚洲视频一区在线| 国产在线一区观看| 91精品在线免费| 亚洲综合另类小说| www.在线成人| 久久久久久麻豆| 久久精品国产一区二区三| 欧美日韩久久久久久| 国产精品不卡一区| 国产精品影视在线| 精品免费视频.| 日韩激情一区二区| 欧美中文字幕一区二区三区 | 伦理电影国产精品| 欧美日本免费一区二区三区| 亚洲毛片av在线| 成人avav影音| 中文字幕乱码日本亚洲一区二区| 韩国欧美国产1区| 91精品国产色综合久久久蜜香臀| 一区二区三区中文在线观看| 成人久久18免费网站麻豆| 久久久国产精华| 国产在线视视频有精品| 日韩一级免费观看| 日韩高清不卡一区二区| 欧美性受极品xxxx喷水| 亚洲欧洲一区二区在线播放| 成人免费视频一区| 国产农村妇女毛片精品久久麻豆 | 一区二区三区日韩在线观看| 99re这里都是精品| 中文字幕日本乱码精品影院| 国产成人精品综合在线观看| 久久久久久一二三区| 韩日欧美一区二区三区| 2020日本不卡一区二区视频| 韩国视频一区二区| 久久久久久免费| 国产福利精品导航| 中文字幕免费观看一区| 波多野结衣精品在线| 一区二区三区在线观看动漫| 色哟哟在线观看一区二区三区| 亚洲人成网站在线| 欧洲精品一区二区三区在线观看| 亚洲综合丁香婷婷六月香| 色婷婷一区二区三区四区| 夜夜操天天操亚洲| 欧美日韩激情在线| 久久精品国产成人一区二区三区| 亚洲精品一区二区三区精华液 | 国产.欧美.日韩| 国产精品视频看| 色综合色狠狠天天综合色| 一区二区三区四区五区视频在线观看| 在线免费亚洲电影| 日韩国产欧美在线观看| 精品精品国产高清a毛片牛牛| 国产精品一区二区三区网站| 亚洲欧洲精品一区二区三区不卡| 色综合天天综合网国产成人综合天| 亚洲另类中文字| 8v天堂国产在线一区二区| 国产精品一区二区果冻传媒| 亚洲视频资源在线| 欧美一区二区人人喊爽| 国产精品主播直播| 亚洲精品国产a| 日韩一区二区三区电影| 国产成人亚洲综合a∨婷婷| 一区二区三区色| 欧美精品一区二| 91视频国产观看| 麻豆久久久久久久| 综合久久一区二区三区| 欧美日韩国产影片| 国产suv精品一区二区883| 一卡二卡欧美日韩| 久久综合狠狠综合久久激情 | 精品国产三级电影在线观看| 成人sese在线| 秋霞影院一区二区| 国产精品久久一级| 欧美人牲a欧美精品| 国产成人综合视频| 日韩成人伦理电影在线观看| 中文字幕av一区二区三区高| 欧美高清dvd| 91日韩一区二区三区| 国内精品在线播放| 亚洲一区精品在线| 中文字幕制服丝袜成人av| 欧美精品九九99久久| 91在线高清观看| 国产自产高清不卡| 婷婷中文字幕一区三区| 亚洲视频免费在线观看|