OpenCV-C++ 图像上采样和降采样
2021/4/11 20:25:59
本文主要是介绍OpenCV-C++ 图像上采样和降采样,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 图像上采样
- 图像降采样
- 高斯不同(Difference of Gaussian, DOG)
图像金字塔是由一系列图像组成的,最底层图像的尺寸最大,最上层图像的尺寸最小;
有两种类型的金字塔:
- 高斯金字塔: 用于下采样;
- 拉普拉斯金字塔: 用于重建一张图片,利用上层的降采样图像进行恢复;
图像金字塔中包含两种操作,分别是上采样操作和降采样操作;
具体来看OpenCV中有关pyrUp
和pyrDown
的使用;
图像上采样
用于放大图像;
OpenCV中的pyrUp
的使用:
// 图像上采样 Mat srcUp; pyrUp(src, srcUp, Size(src.cols*2, src.rows*2));
图像降采样
用于缩小图像;
OpenCV中的pyrDown
的使用:
// 图像降采样 Mat srcDown; pyrDown(src, srcDown, Size(src.cols/2, src.rows/2));
高斯不同(Difference of Gaussian, DOG)
高斯不同(Different of Gaussian-DOG)
- 定义: 就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像,称为高斯不同(DOG);
- 高斯不同是图像图像的内在特征,在灰度图像增强, 角点检测中经常用到;\
Mat srcGray, g1, g2, dogImg; // 将RGB图像转换称Gray图像 cvtColor(src, srcGray, COLOR_BGR2GRAY); // 高斯不同(Difference of Gaussian, DOG) GaussianBlur(srcGray, g1, Size(5, 5), 0, 0); GaussianBlur(g1, g2, Size(5, 5), 0, 0); subtract(g1, g2, dogImg, Mat()); // 归一化显示 normalize(dogImg, dogImg, 255, 0, NORM_MINMAX);
另外,有关subtract
API的使用:
void subtract(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray(), int dtype = -1);
该方法用于计算两个数组或者数组与标量之间的差;
src1
表示第一个数组或者标量src2
表示第二个数组或者标量dst
表示输出,与输入数组的维度和通道数目一致;mask
可选,一个8-bit单通道数组,用于指定要更改的输出数组的元素;
上面的API等同于:
dst = src1 - src2; dst -= src1; // equivalent to subtract(dst, src1, dst);
Reference:
- OpenCV探索之路(五):图片缩放和图像金字塔
这篇关于OpenCV-C++ 图像上采样和降采样的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享