⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.h

📁 东南大学版本
💻 H
字号:
#include "iostream.h"
#include "math.h"
#define M 6
#define N 256
double s[N];
double cs[N];
int gray[256];
double a[M][N];

double b[M-1][N/2];
BYTE spic[1024*1024];
double hp(double x)
{
	if(x>=0&&x<=1) return 1.0;
	else return 0.0;
}


double hq(double x)
{
	if(x>=0&&x<=0.5) return 1.0;
	else if(x>0.5&&x<=1) return -1.0;
	else return 0.0;
}
void hw()
{
	for(int k=0;k<N;k++)
	{
		a[0][k]=s[k];
	}
	for(int i=1;i<M;i++)
	{
		for(k=0;k<N*pow(2,-i);k++)
		{
			a[i][k]=0.5*(a[i-1][2*k]+a[i-1][2*k+1]);
			b[i][k]=0.5*(a[i-1][2*k]-a[i-1][2*k+1]);
		}
	}
}
double h[4]={0.5,(1+sqrt(2))/2,0.5,(1-sqrt(2))/2};
//h[4]={(1+sqrt(3))/4,(3+sqrt(3))/4,sqrt(3-sqrt(3))/4,(1-sqrt(3))/4};

void wtD4()
{
	for(int k=0;k<N;k++)
	{
		a[0][k]=s[k];
	}
	for(int i=1;i<M;i++)
	{
		for(k=0;k<N*pow(2,-i);k++)
		{
			a[i][k]=h[0]*a[i-1][2*k]+h[1]*a[i-1][2*k+1]+h[2]*a[i-1][2*k+2]+h[3]*a[i-1][2*k+3];
			a[i][k]*=0.5;
			//0.5*(a[i-1][2*k]+a[i-1][2*k+1]);
			//b[i][k]=0.5*(a[i-1][2*k]-a[i-1][2*k+1]);
		}
	}
}
void recons(int m)
{
	for(int i=0;i<N;i++)
	{
		cs[i]=0;
		for(int k=0;k<N*pow(2,-m);k++)
		{
			cs[i]+=a[m][k]*hp((i+0.3)*pow(2,-m)-k);
		}
	}
}
double ah[6][1024][1024];
BYTE bh[3*1024*1024];
double dh1[6][1024][1024];
double dh2[6][1024][1024];
double dh3[6][1024][1024];
double as[1024][1024];
int width=1024;
int height=1024;
void harrp()
{
	for(int j=1;j<6;j++)
	{
		for(int m=0;m<height*pow(2,-j);m++)
		{
			for(int n=0;n<width*pow(2,-j);n++)
			{
				ah[j][m][n]=ah[j-1][2*m][2*n]+ah[j-1][2*m+1][2*n]+ah[j-1][2*m][2*n+1]+ah[j-1][2*m+1][2*n+1];
				dh1[j][m][n]=ah[j-1][2*m][2*n]+ah[j-1][2*m+1][2*n]-ah[j-1][2*m][2*n+1]-ah[j-1][2*m+1][2*n+1];
				dh2[j][m][n]=ah[j-1][2*m][2*n]-ah[j-1][2*m+1][2*n]+ah[j-1][2*m][2*n+1]-ah[j-1][2*m+1][2*n+1];
				dh3[j][m][n]=ah[j-1][2*m][2*n]-ah[j-1][2*m+1][2*n]-ah[j-1][2*m][2*n+1]+ah[j-1][2*m+1][2*n+1];
				ah[j][m][n]*=0.25;
			    dh1[j][m][n]*=0.25;
				dh2[j][m][n]*=0.25;
				dh3[j][m][n]*=0.25;
			}
		}
	}
}
void process()
{
	for(int m=0;m<height/2;m++)
	{
		for(int n=0;n<width/2;n++)
		{
			as[2*m][2*n]=as[2*m+1][2*n]=as[2*m][2*n+1]=as[2*m+1][2*n+1]=0.25*(ah[0][2*m][2*n]+ah[0][2*m+1][2*n]+ah[0][2*m][2*n+1]+ah[0][2*m+1][2*n+1]);
		}
	}
}
void press()
{
	for(int m=0;m<1024/2;m++)
		for(int n=0;n<1024/2;n++)
		{
			    if(abs(dh1[1][m][n])<64)dh1[1][m][n]=0;
				if(abs(dh2[1][m][n])<36)dh2[1][m][n]=0;
				if(abs(dh3[1][m][n])<64)dh3[1][m][n]=0;
		}
}
int HC=0;
void reconstruct()
{
	for(int m=0;m<height/2;m++)
	{
		for(int n=0;n<width/2;n++)
		{
			float k=0;
			as[2*m][2*n]=as[2*m+1][2*n]=as[2*m][2*n+1]=as[2*m+1][2*n+1]=ah[1][m][n];
            //as[2*m][2*n]+= (dh1[1][m][n])+dh2[1][m][n]+(dh3[1][m][n]);
			//as[2*m+1][2*n]+= (dh1[1][m][n])-dh2[1][m][n]-(dh3[1][m][n]);
			//as[2*m][2*n+1]+=(-dh1[1][m][n])+dh2[1][m][n]-(dh3[1][m][n]);
			//as[2*m+1][2*n+1]+=(-dh1[1][m][n])-dh2[1][m][n]+(dh3[1][m][n]);
		}
	}
	for(m=0;m<height-1;m++)
	{
		for(int n=0;n<width-1;n++)
		{
			if(abs(ah[0][m][n]-ah[0][m+1][n])>10||abs(ah[0][m][n]-ah[0][m][n+1]>10))
			{as[m][n]=ah[0][m][n];HC++;}
			//else as[m][n]=255;
		}
	}
}
void recon(int j)
{
	int XM=pow(2,j);
	for(int m=0;m<height/XM;m++)
	{
		for(int n=0;n<width/XM;n++)
		{
			for(int l=0;l<XM;l++)
				for(int k=0;k<XM;k++)
				{
				   as[XM*m+l][XM*n+k]=ah[j][m][n];
				}
		}
	}
	for(m=0;m<height-1;m++)
	{
		for(int n=0;n<width-1;n++)
		{
			if(abs(ah[0][m][n]-ah[0][m+1][n])>10||abs(ah[0][m][n]-ah[0][m][n+1]>10))
			{as[m][n]=ah[0][m][n];HC++;}
			//else as[m][n]=255;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -