(17)图片尺寸的缩放

Posted xiaoyoucai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(17)图片尺寸的缩放相关的知识,希望对你有一定的参考价值。

对图片尺寸的变化,主要是放大和缩小。

具体知识点看这个博客:https://www.cnblogs.com/wyuzl/p/6294275.html

代码看这个博客:https://www.cnblogs.com/skyfsm/p/6876732.html

=======================================================

resize代码实现:

 1 #include<opencv2opencv.hpp>   
 2 #include<opencv2highguihighgui.hpp>
 3 
 4 using namespace std;
 5 using namespace cv;
 6 
 7 //图片的缩小与放大
 8 int main()
 9 {
10     Mat img = imread("C:\\Users\\32829\\Desktop\\aa.jpg");
11     imshow("原始图", img);
12 
13     Mat dst = Mat::zeros(300, 300, CV_8UC3); //我要转化为512*512大小的
14     resize(img, dst, dst.size());
15 
16     imshow("尺寸调整之后", dst);
17 
18     waitKey(0);
19 
20 }

结果展示:

技术分享图片

 

 =========================================================

 1 //第二种,填入你要缩小或者放大的比率。
 2 
 3 #include<opencv2opencv.hpp>   
 4 #include<opencv2highguihighgui.hpp>
 5 
 6 using namespace std;
 7 using namespace cv;
 8 
 9 //图片的缩小与放大
10 int main()
11 {
12     Mat img = imread("C:\\Users\\32829\\Desktop\\aa.jpg");
13     imshow("原始图", img);
14 
15     Mat dst;
16     resize(img, dst, Size(), 0.5, 0.5);//我长宽都变为原来的0.5倍
17 
18     imshow("尺寸调整之后", dst);
19 
20     waitKey(0);
21 
22 }

=====================================================

结果展示

===============================================

技术分享图片

==============================================================

接下来说说图像金字塔

说白了,图像金字塔就是用来进行图像缩放的,干的事情跟resize函数没两样,那我们还需要学它吗?我觉得有必要的额,因为在学习卷积神经网络中会遇到这个名词,所以都学一学吧,搞图形都绕不过他!

具体知识点,看这个博客:https://www.cnblogs.com/skyfsm/p/6876732.html

============================================================

下面就是用的图像金字塔的知识,弄的图片

=====================================

 1 //下面给出OpenCV中pryUp和pryDown的用法。
 2 
 3 #include<opencv2opencv.hpp>   
 4 #include<opencv2highguihighgui.hpp>
 5 
 6 using namespace std;
 7 using namespace cv;
 8 
 9 //图像金字塔
10 int main()
11 {
12     Mat img = imread("C:\\Users\\32829\\Desktop\\aa.jpg");
13     imshow("原始图", img);
14 
15     Mat dst, dst2;
16     pyrUp(img, dst, Size(img.cols * 2, img.rows * 2)); //放大一倍
17     pyrDown(img, dst2, Size(img.cols * 0.5, img.rows * 0.5)); //缩小为原来的一半
18     imshow("尺寸放大之后", dst);
19     imshow("尺寸缩小之后", dst2);
20 
21     waitKey(0);
22 
23 }

===========================================

下面是结果展示

============================================

技术分享图片

================================================================

总结:

    
显然,无论是放大还是缩小,图像都变得模糊了,这就是他的致命缺点。

个人认为,要做缩放就用resize函数吧,毕竟方便太多而且图像不会变模糊!

 


以上是关于(17)图片尺寸的缩放的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 图片尺寸缩放——resize函数

微信小程序学习点滴《十二》:图片等比例缩放 获取屏幕尺寸图片尺寸 自适应

java swing 怎么让图片大小随着窗口的缩放而缩放?为啥我插入的图片尺寸不变?

图像金字塔与图片尺寸缩放

OpenCV——图像金字塔和图片尺寸缩放

图像金字塔与图片尺寸缩放