14-图像金子塔-上采样与降采样

计算机视觉——SIFT算法之高斯金字塔 计算机视觉—SIFT算法之高斯金字塔 brycezou@163.com 1、高斯金字塔–>DoG金字塔        在理论上,输入图像需要先分别与不同尺度的高斯核进行卷积,然后求两幅图像的差。而在实际中更为简单,如图所示,高斯金字塔相邻两层相减,便可以得到 DoGDoG 金字塔。这是因为,高斯金字塔每层中的多幅图像,原本就是通过对同一幅输入图像进行不同尺度的高斯卷积得来的。关于高斯金字塔 阅读详情

掌握

1、图像金字塔概念;
2、采样API;
3、代码演示;

图像金字塔概念

1、如下图,图像金子塔从上到下,分辨率依次提高,图像采样越多,分辨率越高;
2、上采样:分辨率提高的采样,得到的图像宽高是原来图像的2倍;图像金子塔中对应图像从上到下;图像放大(zoom in),图像大小改变(变大);
3、降采样:分辨率降低的采样,得到的图像宽高是原来图像的1/2,图像金字塔中对应图像从下到上;图像缩小(zoom out)
4、通过图像金字塔上采样,降采样产生一系列不同分辨率的图片,然后在不同的尺寸空间寻找图像对应的特征,图像金字塔可以保证图像的特征一致存在;
5、一个图像金子塔由一系列的图像组成,最下方图像最大,顶层图像最小;图像金子塔在图像融合,重建,特征提取上都有重要意义;

在这里插入图片描述 在这里插入图片描述

图像金字塔分类

1、高斯金子塔–用来对图像进行降采样;
- 高斯金字塔从底向上,逐层降采样得到(不能越级);
- 降采样后图像宽高变为原来1/2,图像大小变为原来1/4,删除其中的偶数行与偶数列;
- 高斯金子塔生成步骤:
1、高斯模糊:GaussianBlur();
2、删除当前的偶数行与列;
在这里插入图片描述2、高斯不同(Difference of Gaussian-DOG)
①定义: 把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像,称为高斯不同(DOG);
②高斯不同是图像的内在特征,在灰度图像增强,角点检测中经常用到;
3、拉普拉斯金字塔-用来重建一张图片根据它的上层降采样图片;

相关API

1、上采样:cv::pyrUp --zoom in 放大;
2、降采样:cv::pyrDown–zoom out 缩小;

//生成图像宽高各放大2倍
pyrUp(Mat src , Mat dest , Size(src.cols * 2 , src.rows * 2));
//生成图像宽高各缩小1/2
pyrDown(Mat src, Mat dest , Size(src.cols/2 , src.rows/2));

归一化函数:normalize():
在这里插入图片描述

Code

思路:通过对图像上采样和降采样,得到一系列的图片组成高斯金字塔,相邻图片做减法得到高斯不同,归一化显示高斯不同的图片(高斯不同得到的图像像素值很低,图像很暗);

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
	Mat src = imread("C:\\Users\\hello\\Desktop\\2.jpg");
	Mat dst;
	if (src.empty())
	{
		cout << "could not load the image...\n";
		return -1;
	}
	namedWindow("input image", CV_WINDOW_AUTOSIZE);
	imshow("input image", src);
	
	char OUTPUT_WIN[] = "sample up";
	namedWindow(OUTPUT_WIN, CV_WINDOW_AUTOSIZE);
	//上采样;
	pyrUp(src, dst, Size(src.cols * 2, src.rows * 2));
	imshow(OUTPUT_WIN, dst);
	//降采样
	Mat s_down;
	pyrDown(src, s_down, Size(src.cols / 2, src.rows / 2));
	imshow("sample down", s_down);
	//高斯不同 得到高斯金子塔后,对每层图像进行高斯模糊,做差得到高斯不同
	Mat graysrc,g1, g2,dogImg; 
	cvtColor(src, graysrc, CV_BGR2GRAY);
	GaussianBlur(graysrc, g1, Size(5, 5), 0, 0);//sigma根据算法自动生成
	GaussianBlur(g1, g2, Size(5, 5), 0, 0);  //叠代高斯模糊
	//两次高斯模糊做差得到高斯不同
	subtract(g1, g2, dogImg,Mat());  //图像做减法得到高斯不同(分叉图像)
	//归一化显示
	normalize(dogImg, dogImg, 255, 0,NORM_MINMAX);  //将图像从0-1之间变换到0-255之间 adaptivethreshold();
	imshow("DOG Image", dogImg); //高斯不同得到的值很低,图像很暗

	waitKey(0);
	return 0;
}

效果

灰度图像:
在这里插入图片描述在这里插入图片描述

opencv之图像金字塔上采样与降采样实例下载 详细讲解了图像金字塔的概念,拉普拉斯金字塔和高斯金字塔的原理和实现方式,并有相关接口调用的实例代码,欢迎下载学习。 立即下载

相关推荐

XGBoost与Embedding混合建模实战解析

在机器学习领域,特征工程与模型融合是提升预测性能的关键技术。Embedding技术通过将高维稀疏特征(如文本、ID类数据)转化为低维稠密向量,有效捕获语义关联;而XGBoost作为强大的集成学习算法,擅长处理结构化特征并进行自动特征组合。两者结合的混合架构(如Semantic Boosted Trees)在金融风控和推荐系统等场景中展现出显著优势,尤其在处理用户行为序列、商品ID等复杂特征时,相比传统方法能获得更好的模型效果。本文通过电商推荐和金融反欺诈等案例,详解如何实现Embedding+XGBoost

weixin_28718641的博客 324

14.图像金字塔——上采样与降采样

主要内容 图像金字塔的概念 采样API 高斯不同(DOG) 图像金字塔的概念 (1)我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像的放大和缩小,但是这里我们介绍图像金字塔。 一个图像金字塔是一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就像是一个古代金字塔。 (2) 本...

罗伊的博客 1742

硬件-电源-智能保护:eFuse选型与实战设计全攻略

本文深入解析eFuse在硬件电源设计中的关键作用与实战选型技巧。作为智能保护器件,eFuse能提供毫安级精度的过流保护、多重故障防护和智能恢复功能,比传统保险丝快1000倍以上。文章详细介绍了eFuse的工作原理、五大选型维度和PCB布局要点,帮助工程师有效预防电源异常导致的硬件损坏,适用于AI服务器、工业控制等场景。

weixin_30879169的博客 200

【OpenCV学习】第11课:图像金字塔 - 上采样与降采样(高斯金字塔,放大与缩小图像)

参考文章链接:https://blog.youkuaiyun.com/qq_54185421/article/details/124350723。

书生的博客 1553

RAP 时代的 Service Binding:把 CDS 业务服务稳稳地“插”到 OData 里

本文深入解析SAP ABAP开发中的关键对象Service Binding,阐述了如何通过三层架构(数据模型、服务定义、服务绑定)实现业务逻辑与协议分离。文章重点分析了Service Binding的核心参数配置,包括服务命名规范、协议类型选择(OData V2/V4、InA、SQL)及服务形态(UI Service与Web API),并通过实际案例说明不同选项的应用场景。同时介绍了服务版本控制机制、发布流程及Fiori预览功能,帮助开发者理解如何通过Service Binding将业务能力高效转化为可消费

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5710

华为OD机试真题 新系统2026-04-01 C语言 实现【计算数列位置N的值】

1、输入M、N两个数,则按照以下规则形成一个数列; 2、数列的前M个元素的值为1到M; 3、从M+1个元素开始,计算的逻辑为: 如果其前面的M个元素中,存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之如果其前面的M个元素中,不存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之差;

MISAYAONE的博客 588

图像上采样

什么是上采样: 中文版维基百科上的解释,“升采样是一种插值的过程,应用于数字信号处理,当一串数列或连续的讯号经过升采样后,输出的结果约略等于讯号经由更高的取样速率采样后所得的序列。” 也就是说上采样就是插值,约等于提高了采样的频率。 上采样在图像处理中的作用: 提高图像分辨率。因为,分辨率是一张图像像素点的个数,经过上采样后,像素点个数提高了,所以,分辨率提高了。 上采样的方法: 三个常见的插值方法:最近邻插值,双线性插值,双三次插值 三个常见unpooling:zero unpooling, max un

AliceH1226的博客 4801

osgEarth 球上显示地形数据库

osgEarth 球上显示地形数据库 本文展示了一种由DSM和DEM得到Osgb工程,并在osgEarth球上显示的方法。其中DSM、DOM到Osgb工程的转换由VPB(VirtualPlanetBuilder)来实现,并采用Model图层将Osgb工程在球上显示。 本文主要解决一下问题: VPB编译 VPB生成地形 地形在球上显示 目录 1 前言 2 VPB编译与使用 3 地形在osgEarth球上显示 内容 1 前言 VirtualPlanetBuilder是一个开源代码工具,用于根据

CPWWHSU的博客 2433

最详细的图像金字塔原理及下采样的实现

图像金字塔是对图像的一种多尺度的表达,将各个尺度的图像按照分辨率从小到大,依次从上到下排列,就会形成类似金字塔的结构,因此称为图像金字塔。常见的图像金字塔有两类,一种是高斯金字塔,另一种的拉普拉斯金字塔一般在图像处理中,高斯代表“模糊”,而拉普拉斯代表“差异”。高斯金字塔通过不断对图像进行模糊且下采样而获得,下采样的因子一般是2倍。随着分辨率越来越小,图像会越来越模糊,高斯金字塔的最底层就是原始图像本身。拉普拉斯金字塔在高斯金字塔的基础上,对所有层进行上采样(一般也是2倍上采样)

AI_dataloads的博客 6108

Camera HAL Camx — DRQ总结

Camera HAL — DRQ(延迟请求队列)总结 DRQ是CAMX核心层的依赖驱动延迟执行调度器,解决Node处理请求时依赖未就绪的问题。其主要特点包括: 核心功能:当Node处理请求时缺少必要输入(property/metadata/fence),DRQ将其挂起并在依赖满足后重新调度,避免阻塞流水线或丢帧。 系统架构:Session持有主DRQ实例,管理该Session下所有Pipeline Node的依赖;CHI context另有独立DRQ实例专门处理Chi fence同步。 关键数据结构: De

DU_YULIN的博客 74

手把手教你完成YOLOv8 PyQt5和PySide6目标检测界面搭建,前台系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程

目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。YOLO系列模型由于其高效的检测速度和较高的准确率,成为目标检测任务的首选算法之一。本项目结合 YOLOv8 与 PyQt5,构建了一个图形化界面,便于用户进行目标检测的操作和展示,实现对图片、视频和摄像头的实时目标检测,不仅可以用于大论文的工作量展示,还可以作为毕业设计。支持目标检测、目标分割等模型进来检测

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1万+

【OpenCV图像处理】1.13 图像金字塔--上采样与降采样

平常说的分辨率几百万几百万像素就是指图像获取的大小。也就是图像的金字塔概念。 图像金字塔 我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔 一个图像金字塔式一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就想一个古代的金字塔。 图像...

Donald Su 585

读懂ARM汇编程序,你只差这篇!保姆级教程(附完整示例剖析)!

ARM汇编中的符号、标号、伪操作有哪些?C语言和汇编语言如何混合编程?GNU ARM汇编和ARM汇编的区别有哪些?

车载系统攻城狮 1万+

<LearnOpenCV14>上采样与降采样

图像金字塔概念 1.我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔 2. 一个图像金字塔式一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就想一个古代的金字塔。 高斯金子塔 – 用来对图像进行降采样 拉普拉斯金字塔 – 用来重建一张图片根据它的上层...

weixin_42255569的博客 622

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

第14课 图像上采样和降采样和高斯不同

目录1. 图像金字塔1.1 图像金字塔的概念1.2 图像金字塔的种类2. 采样的相关API上采样cv::pyrUp()(zoom in放大)降采样cv::pyrDown()(zoom out 缩小)3. 高斯不同(difference of Gaussian-DOG)4. 高斯不同的相关API4.1 高斯模糊4.2 图像减法操作4.3 归一化显示5. 例程 1. 图像金字塔 1.1 图像金字塔的概...

weixin_42877426的博客 994

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

OpenCV14图像上采样_图像放大和降采样_缩小与高斯不同

/* prepared by txwtech 图像上采样和降采样 图像金字塔概念 1. 我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔 2. 一个图像金字塔式一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就想一个古代的金字塔。 高斯金子塔 – 用来对图像进行降采样 拉普拉斯金字塔 – 用来重建一张图片根据它的上层降采样图片 什么是高斯不同(Differen

Txwtech 586

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

opencv入门基础(c++)【三】

opencv入门基础(c++)十三、图像上采样和降采样13.1图像金字塔概念图像金字塔概念 – 高斯金字塔(变大变小)高斯不同(Difference of Gaussian-DOG)(变暗提取轮廓)采样相关API十四、基本阈值操作图像阈值(threshold)阈值类型阈值二值化(threshold binary)阈值反二值化(threshold binary Inverted)截断 (trunca...

Cream_Cicilian的博客 2009

物体检测之SNIPER

  图像金字塔是传统的提升物体检测精度的策略之一,其能提升精度的一个原因是尺寸多样性的引入。但是图像金字塔也有一个非常严重的缺点:即增加了模型的计算量,一个经过3个尺度放大(1x,2x,3x)的图像金子塔要多处理14倍的像素点。 SNIPER(Scale Normalization for Image Pyramid with Efficient Resampling)的提出动机便是解决图像金...

duanyajun987的博客 1619

opencv--高斯金字塔—上采样—下采样

#include<opencv2\opencv.hpp> #include<highgui.h> #include<iostream> using namespace std; using namespace cv; int main(int argc, char** argv) { // read image Mat src, dst; src = i...

qxqsunshine的博客 3823

10.1高斯金字塔-向下取样

你可以使用OpenCV在C++中构建高斯金字塔,并对其进行逐层向下取样。这对于后续的图像处理任务,如特征检测、图像匹配等非常有用。

weixin_45794330的博客 1219

[OpenCV] 数字图像处理 C++ 学习——09图像金字塔上采样(PyrUp)和降采样(PyrDown) 附完整代码

本博客主要学习图像金字塔技术中的上采样和降采样操作。这些操作用于改变图像的分辨率,是多尺度图像处理的基础。通过上采样(拉普拉斯金字塔)可以放大图像,恢复或接近原始图像,而降采样(高斯金字塔)可以缩小图像,减少图像的细节,从而降低图像处理的计算复杂度。本博客将详细讲解上采样和降采样的原理,并提供完整的实现代码,通过具体示例来展示这些操作的实际效果。

m0_60437290的博客 1910

2021-03-19

opencv快速入门三 1图像采样与降采样 图像采样: 放大:上采样;pyrUp(Mat src, Mat dst, Size(src.cols2, src.rows2)) 缩小:降采样;pyrDown(Mat src, Mat dst, Size(src.cols/2, src.rows/2)) 高斯金字塔:图像的降维处理 高斯金字塔: 高斯金字塔是从底向上,逐层降采样得到。对应的降采样是删除偶数行与列,得到降采样的上层图片。 高斯金字塔生成过程: 对当前层进行高斯模糊;删除当前层的偶数行与列 高斯不同(

wh_666的博客 156

图像金字塔

基础知识 图像分辨率是指图像单位英寸中所包含的像素数,常用DPI表示。图像分辨率和图像尺寸的值一起决定了图像的输出质量和文件大小,图像分辨率越大,图像质量越好,同时所占的内存和磁盘空间越大。文件大小与图像分辨率的平方成正比,如果图像的尺寸不变,将图像分辨率提高一倍,那么文件大小增加四倍。 图像金字塔 图像金字塔是图像多尺度表达的一种。一幅图像的图像金字塔是一系列以金字塔形状(自下而上)逐步降低,且来源于同一张原始图的图像分辨率集合。通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比

AAAA202012的博客 1476

恢复特征图分辨率的方式对比:反卷积,上池化,上采样

利用 CNN 做有关图像的任务时,肯定会遇到 需要从低分辨率图像恢复到到高分辨率图像 的问题。解决方法目前无非就是 1)插值,2)反卷积一般 上采样 (upsamping) 就使用了插值法,包括 “最近邻插值”,“双线性插值”,“双三次插值”。这些方向好比时手工的特征工程,网络是不会对此有任何学习行为的。如果想要让网络学习如何才能最优地进行上采样,就可以使用 转置卷积,转置卷积没有预先定义好的插值方法,而是具有可学习的参数。卷积(Convolution)的主要目的就是对事物进行特征提取,然后根据特征对其进行

学习 & 分享 ~ 7612

OpenCV 实现最小值降采样

在处理某些高分辨的图像时,如果直接对其原图进行操作处理,那么效率是很低下的,因此我们要在尽可能的保留图像信息的情况下,减小图像的分辨率大小,此时就需要用到图像的降采样。由于我本人之前都是在处理裂缝的图像,而裂缝一般都是属于灰度值较低的部分,因此本文采用最小值的将采样法,将裂缝信息得以完整的保留,以便后续进行分析计算。具体操作如下: 实际上如果结合OpenCV实现我们上述的功能还是挺简单的...

zzzzjh的博客 2376

SIFT算法原理介绍

SIFT算法 SIFT即尺度不变特征变换,是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。 一、SIFT算法特点: 1、具有较好的稳定性和不变性,能够适应旋转、尺度缩放、亮度的变化,能在一定程度上不受视角变化、仿射变换、噪声的干扰。 2、区分性好,能够在海量特征数据库中进行快速准确的区分信息进行匹配 3、多量性,就算只有单个物体,也能产生大量特征向量 4、高速性,能够快速的进行特征向量匹配 5、可扩展性,能够与其它形式的特征向量进行联合 二、SIF

gyp_666的博客 5109
上一篇: 13-形态学操作应用-提取水平与垂直线
下一篇: 15-基本阈值操作
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值