Python使用OpenCV对图像进行缩放功能
OpenCV:图片缩放和图像金字塔
对图像进行缩放的最简单方法当然是调用resize函数啦!
resize函数可以将源图像精确地转化为指定尺寸的目标图像。
要缩小图像,一般推荐使用CV_INETR_AREA来插值;若要放大图像,推荐使用CV_INTER_LINEAR。
现在说说调用方式
第一种,规定好你要图片的尺寸,就是你填入你要的图片的长和高。
#include#include using namespace std; using namespace cv; //图片的缩小与放大int main(){Mat img = imread("lol5.jpg"); imshow("原始图", img); Mat dst = Mat::zeros(512, 512, CV_8UC3); //我要转化为512*512大小的resize(img, dst, dst.size()); imshow("尺寸调整之后", dst); waitKey(0); }
文章图片
第二种,填入你要缩小或者放大的比率。
#include#include using namespace std; using namespace cv; //图片的缩小与放大int main(){Mat img = imread("lol5.jpg"); imshow("原始图", img); Mat dst; resize(img, dst, Size(),0.5,0.5); //我长宽都变为原来的0.5倍imshow("尺寸调整之后", dst); waitKey(0); }
文章图片
接下来说说图像金字塔 说白了,图像金字塔就是用来进行图像缩放的,干的事情跟resize函数没两样,那我们还需要学它吗?我觉得有必要的额,因为在学习卷积神经网络中会遇到这个名词,所以都学一学吧,搞图形都绕不过他!
说说什么是图像金字塔。
文章图片
其实非常好理解,如上图所示,我们将一层层的图像比喻为金字塔,层级越高,则图像尺寸越小,分辨率越低。
两种类型的金字塔:
- 高斯金字塔:用于下采样,主要的图像金字塔;
- 拉普拉斯金字塔:用于重建图像,也就是预测残差(我的理解是,因为小图像放大,必须插入一些像素值,那这些像素值是什么才合适呢,那就得进行根据周围像素进行预测),对图像进行最大程度的还原。比如一幅小图像重建为一幅大图像,
- 上采样:就是图片放大(所谓上嘛,就是变大),使用PryUp函数
- 下采样:就是图片缩小(所谓下嘛,就是变小),使用PryDown函数
对图像进行高斯内核卷积
将所有偶数行和列去除
下采样就是图像压缩,会丢失图像信息。
上采样步骤:
- 将图像在每个方向放大为原来的两倍,新增的行和列用0填充;
- 使用先前同样的内核(乘以4)与放大后的图像卷积,获得新增像素的近似值。
下面给出OpenCV中pryUp和pryDown的用法。
#include#include using namespace std; using namespace cv; //图像金字塔int main(){Mat img = imread("lol8.jpg"); imshow("原始图", img); Mat dst,dst2; pyrUp(img, dst, Size(img.cols*2, img.rows*2)); //放大一倍pyrDown(img, dst2, Size(img.cols * 0.5, img.rows * 0.5)); //缩小为原来的一半imshow("尺寸放大之后", dst); imshow("尺寸缩小之后", dst2); waitKey(0); }
显然,无论是放大还是缩小,图像都变得模糊了,这就是他的致命缺点。
文章图片
个人认为,要做缩放就用resize函数吧,毕竟方便太多而且图像不会变模糊!
【Python使用OpenCV对图像进行缩放功能】到此这篇关于Python使用OpenCV对图像进行缩放功能的文章就介绍到这了,更多相关OpenCV图像缩放内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- GitHub 限制俄罗斯使用代码,开源真的无国界吗()
- 蓝桥历届真题|第十一届蓝桥杯python大学组国赛真题
- 使用ADB工具卸载/停用Android系统应用(无需Root)
- python合集|当《鱿鱼游戏》强势来袭(“一、二、三,木头人,思密达。”你还在恐惧嘛())
- opencv对应python版本_有关opencv和python版本等问题
- python写计算机模拟器_用 Python 写出了一个 Gameboy 模拟器
- pygame|Python游戏开发,pygame模块,Python实现超级玛丽100%真实版
- python|Python游戏开发,pygame模块,Python实现过迷宫小游戏
- OpenCV|pycharm安装opencv导入镜像源以及更新pip的正确做法(先到正确的路径下再输入python -m pip install --upgrade pip)
- UVM|【UVM避坑】记录UVM/SV使用过程中遇到的问题