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

📄 trans_haar.c

📁 傅立叶变换和小波变换是图像压缩的重要工具。该代大戏是利用小波变换进行图像压缩。
💻 C
字号:
#include "transform.h"

void forwardHaar(float *data,float *low,float *high,int half)
{
	while(half--)
	{
		*low++  = (data[0] + data[1])*0.5f;
		*high++ = (data[0] - data[1]);
		data += 2;
	}
}

void inverseHaar(float *data,float *low,float *high,int half)
{
	while(half--)
	{
		data[0] = *low + (*high)*0.5f;
		data[1] = *low - (*high)*0.5f;
		low++; high++;
		data += 2;
	}
}

void inverseHaarTransBuf(RowAbstract *out,RowBuffer * lowTB,RowBuffer * highTB,int y)
{
int w;
float *row0,*row1,*low,*high;
	
	// rowCenter was just filled in both transbufs
	// y goes 0 -> height_half

	row0 = RowAbstract_Row(out,0);
	row1 = RowAbstract_Row(out,1);
	RowAbstract_Advance(out,2);

	low  = RowBuffer_Row(lowTB,0);
	high = RowBuffer_Row(highTB,0);

	for(w=out->width;w--;)
	{
	float L,H;
		L = *low++;
		H = *high++;
		*row0++ = L + H*0.5f;
		*row1++ = L - H*0.5f;
	}
}

Transform transformHaar =
{
	forwardHaar,
	inverseHaar,
	"Haar",
	1,1,
	inverseHaarTransBuf
};

⌨️ 快捷键说明

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