opencv 图像金字塔

来源:互联网 发布:保暖内衣选购知乎 编辑:程序博客网 时间:2024/04/29 23:44

主要是opencv中的两个函数:

①cvPyrUp 使用Gaussian 金字塔分解对输入图像向上采样。首先通过在图像中插入 0 偶数行和偶数列,然后对得到的图像用指定的滤波器进行高斯卷积,其中滤波器乘以4做插值。所以输出图像是输入图像的 4 倍大小。

②cvPyrDown  使用 Gaussian 金字塔分解对输入图像向下采样。首先它对输入图像用指定滤波器进行卷积,然后通过拒绝偶数的行与列来下采样图像

note:函数cvPyrUp并不是函数cvPyrDown的逆操作。之所以这样是因为cvPyrDown是一个会丢失信息的函数.

简单代码如下:

#include<cv.h>
#include<highgui.h>
#include<stdio.h>
int main()
{
IplImage *src=cvLoadImage("D://2.JPG");
cvNamedWindow("src",0);//0可调整窗口头像,1不可调整窗口头像
cvShowImage("src",src);
IplImage *pyrup=cvCreateImage(cvSize(src->width*2,src->height*2),src->depth,src->nChannels);
cvPyrUp(src,pyrup,CV_GAUSSIAN_5x5 );
cvNamedWindow("pyrup",0);//1可调整窗口头像,0不可调整窗口头像
cvShowImage("pyrup",pyrup);
IplImage *pyrdown=cvCreateImage(cvSize(src->width/2,src->height/2),src->depth,src->nChannels);
cvPyrDown(src,pyrdown,CV_GAUSSIAN_5x5 );
cvNamedWindow("pyrdown",0);//1可调整窗口头像,0不可调整窗口头像
cvShowImage("pyrdown",pyrdown);

cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&pyrup);
cvReleaseImage(&pyrdown);
cvReleaseImage(&src);
}




0 0
原创粉丝点击