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函数吧,毕竟方便太多而且图像不会变模糊!

  • 相关阅读:
    解决xcode5升级后,Undefined symbols for architecture arm64:问题
    第8章 Foundation Kit介绍
    app 之间发送文件 ios
    iphone怎么检测屏幕是否被点亮 (用UIApplication的Delegate)
    CRM下载对象一直处于Wait状态的原因
    错误消息Customer classification does not exist when downloading
    How to resolve error message Distribution channel is not allowed for sales
    ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼
    有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中
    SAP GUI和Windows注册表
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/10195200.html
Copyright © 2011-2022 走看看