上采样和下采样_OpenCV学习笔记(一)之图像金字塔-上采样与降采样与DOG

一. 图像金字塔

一个图像金字塔式一系列的图像组成,最底下的图形尺寸最大,最上方的图像尺寸最小。 高斯金字塔是从底向上,逐层降采样得到的。 高斯金字塔的生成过程分为两步:

  1. 对当前层进行高斯模糊。
  2. 删除当前层的偶数行与列。
  3. 即可得到上一层的图像,这样上一层跟下一层相比,都只有它的1/4大小。

二. 上采样与降采样

降采样之后的图像大小是原图像M × N 的 M/2 × N/2,就是对原图像删除偶数行与列,即得到降采样之后的上一层的图片。

  1. 上采样(cv::pyrUp)-zoom in 放大,生成的图像是原图的宽和高各放大两倍
pyrUp(Mat src, Mat dst, Size(src.cols*2, src.rows*2))
  1. 降采样(cv::pyrDown)-zoom out 缩小,生成的图像是原图的宽和高各缩小两倍。
pyrDown(Mat src, Mat dst, Size(src.cols/2, src/rows/2))

三. 高斯不同(Difference of Gaussian-DOG)

定义 :就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像。成为高斯不同。高斯不同是图像的内在特征,在灰度图像增强,角点检测中经常用到。

下面是代码:

/*****图像金字塔*****//*上采样,降采样*/#include#includeusing namespace std;int main() {    cv::Mat src, dst;    src = cv::imread("1.jpg");    cv::namedWindow("input image", cv::WINDOW_NORMAL);    cv::imshow("input image", src);    cv::pyrUp(src, dst, cv::Size(src.cols * 2, src.rows * 2));    cv::namedWindow("up image", cv::WINDOW_NORMAL);    cv::imshow("up image", dst);    cv::Mat s_down;    cv::pyrDown(src, s_down, cv::Size(src.cols / 2, src.rows / 2));    cv::namedWindow("down image", cv::WINDOW_NORMAL);    cv::imshow("down image", s_down);    //DOG    cv::Mat gray_src, g1, g2, dogImg;    cv::cvtColor(src, gray_src, cv::COLOR_BayerBG2GRAY);    //两次 高斯模糊    cv::GaussianBlur(gray_src, g1, cv::Size(3, 3), 0, 0);    cv::GaussianBlur(g1, g2, cv::Size(3, 3), 0);    //高斯模糊的结果相减    cv::subtract(g1, g2, dogImg, cv::Mat());    //将DOG的显示效果归一化到0-255范围内,更加明显    cv::normalize(dogImg, dogImg, 255, 0, cv::NORM_MINMAX);    cv::namedWindow("DOG Image", cv::WINDOW_NORMAL);    cv::imshow("DOG Image", dogImg);    cv::waitKey(0);    return 0;}
15a5c64d7db3896d7c8cba33709d2569.png

关注同名公众号【计算机视觉与深度学习】,获取海量计算机视觉与深度学习资源,实战项目源码,最新论文下载,大厂面试经验!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值