zoukankan      html  css  js  c++  java
  • (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函数吧,毕竟方便太多而且图像不会变模糊!

  • 相关阅读:
    Flask上下文管理及源码刨析
    Python数据库连接池DBUtils
    装饰器的修复wraps,偏函数partial 以及chain
    unity官方案例精讲(第三章)--星际航行游戏Space Shooter
    c#多态性
    C# 继承
    c#类(class)
    一、事件函数的执行顺序(脚本的生命周期)
    一、Vuforia_AR
    四、其它(一)
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/10195200.html
Copyright © 2011-2022 走看看