图像处理 二维小波变换

编程环境:windows下结合opencv库

//二维图像小波变换
/*
nLayer:变换尺度
type:小波类型
*/
void ImageDWT(IplImage* src, IplImage* dst, int nLayer, char* type);

//通用的二维小波变换
/*
nLayer:小波变换的层数
type:选取的小波名称
   可用为: "haar","db4","sym4"
使用Mallat算法,并利用傅里叶变换来快速执行卷积运算
src与dst深度均为IPL_DEPTH_8U
*/
void ImageDWT(IplImage* src, IplImage* dst, int nLayer, char* type)
{
	if (!src || !dst)
	{
		return;
	}
	//判断src与dst的长度宽度是否为2的倍数
	if (((dst->width >> nLayer) << nLayer != dst->width) 
		|| ((dst->height >> nLayer) << nLayer != dst->height)
		|| (src->nChannels != 1)
		|| (dst->nChannels != 1)
		|| (nLayer <= 0))
	{
		return;
	}

	CvMat* pMatData = NULL;//用于保存计算过程中的向量
	CvMat* pMatCA = NULL;
	CvMat* pMatCD = NULL;
	CvMat* pMatDst = cvCreateMat(dst->height, dst->width, CV_64FC1);//结果矩阵
	CvMat tmp;
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值