图像处理 一维快速小波变换

本文介绍了如何在Windows操作系统中,利用OpenCV库进行一维快速小波变换的编程实践,详细阐述了相关的编程环境配置和代码实现步骤。

编程环境:windows下结合opencv

//一维快速小波变换
/*
src,dstCA,dstCD均为一维行向量
dstCA,dstCD分别表示小波变换结果的低频和高频部分,其长度为src的一半
type:选取的小波名称
   可用为: "Haar","db4","sym4"
使用Mallat算法,并利用傅里叶变换来快速执行卷积运算
*/
void DWT(CvMat* src, CvMat* dstCA, CvMat* dstCD, char* type);

//一维快速小波变换
/*
src,dstCA,dstCD均为一维行向量
dstCA,dstCD分别表示小波变换结果的低频和高频部分,其长度为src的一半
type:选取的小波名称
   可用为: "Haar","db4","sym4"
使用Mallat算法,并利用傅里叶变换来快速执行卷积运算
*/
void DWT(CvMat* src, CvMat* dstCA, CvMat* dstCD, char* type)
{
	if (!src || !dstCA || !dstCD)
	{
		return;
	}
	if (src->height > 1)
	{
		return;
	}

	int nDFTWidth = cvGetOptimalDFTSize(src->width);//傅里叶变换宽度
	int nDFTHeight = cvGetOptimalDFTSize(1);//傅里叶变换宽度(src为一维的行向量)

	//不同类型的小波数据,第一行表示低通分解滤波器,第二行表示高通分解滤波器
	double pfWaveHaar[2][2] = {0.7071, 0.7071, -0.7071, 0.7071};
	double pfWaveDb4[2][8] = { -0.0106, 0.0329, 0.0308, -0.1870, -0.0280, 0.6309, 0.7148, 0.2304,
	 -0.2304, 0.7148, -0.6309, -0.0280, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值