OpenCV学习笔记----图像变换(图像金字塔)

第四个程序:图像变换

在介绍程序之前,首先说明一下图像金字塔的概念

图像金字塔是一种经典的图像多尺寸描述方法,它将采样和平滑滤波结合在一起,对图像进行多尺度表示。图像金字塔由不同尺寸的图像叠加而成,通常每一层都是上一层的一半

降采样:一种多速率数字信号处理的技术或是降低信号采样率的过程,通常用于降低数据传输速率或者数据大小

为了避免高频分量引入输出信号,我们希望首先通过一个高通滤波器来限制信号带宽,使其能在采样频率之内,在OpenCV中,高斯滤波以及降采样可以通过pyrDown()函数来实现

和降采样相对的是上采样,降采样的操作是降低取数据频率,即隔一定距离进行取样,而上采样是在两个图片中插入图像数据,进而提高其采样率

pyrDown函数详解:

函数原型:

void pyrDown(InputArray src, OutputArray dst, const Size& dstsize=Size());

函数作用:

先对图像进行高斯滤波,然后再进行将采样(将图像尺寸行和列方向缩小一半)

参数解读:

src:原始图像结构

dst:处理后的图像结构

dstsize:降采样之后的目标图像大小,不建议修改,因为此函数的作用就是将图像缩小一半,并不是自定义图像大小

pyrUp函数详解

函数原型

void pyrUp(InputArray src, OutputArray dst, const Size& dstsize=Size());

函数作用:

和pyrDown不同的是,该函数是先将图像行列方向都放大一倍,再对其进行高斯平滑

参数和pyrDown相似,不再详细展开

程序源码如下:

#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
    Mat img1,img2,img3;

    img1 = imread("/home/wang/opencv/project/2/1.jpg",-1);
    imshow("picture_in",img1);

    pyrDown(img1,img2);
    pyrUp(img1,img3);
    imshow("picture_pyrDown",img2);
    imshow("picture_pyrUp",img3);

    waitKey(0);
    return 0;
}

程序编译指令如下:

g++ pyrDown.cpp -o pyrDown `pkg-config --cflags --libs opencv`

程序执行效果如下:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值