图像的尺寸调整

Posted carlber

tags:

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

本次使用opencv中的API函数resize()和pyrup()和pyrdown()进行图像尺寸的放大和缩小。

程序的功能说明如下:

  按键的功能 按下1键:用resize()把图片放大
     按下2键 :用resize()把图片缩小
  按下3键: 用pyrup()把图片放大
  按下4键:用pyrdown()把图片缩小

#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>

using namespace std;
using namespace cv;

Mat src, temp, dst;
static void ShowHelpText();

int main()
{   
    //显示原图
    src = imread("D:/meinv.jpg");
    namedWindow("原图", CV_WINDOW_AUTOSIZE);
    imshow("原图", src);

    //参数赋值
    temp = src;
    dst = temp;
    
    //按键的功能 按下1键:用resize()把图片放大
               // 按下2键 :用resize()把图片缩小
              //按下3键: 用pyrup()把图片放大
              //按下4键:用pyrdown()把图片缩小
    int key = 0;
    while (1)
    {  
        key = waitKey(9);   //读取键值
        switch (key)
        {
            case 27:      //按下ESC,退出程序
                return 0;
                break;
            case 1:
                resize(temp, dst, Size(temp.cols * 2, temp.rows * 2));
                printf("按键1按下,将图片放大
");
                break;

            case 2:
                resize(temp, dst, Size(temp.cols / 2, temp.rows / 2));
                printf("按键2按下,将图片缩小
");
                break;

            case 3:
                pyrUp(temp, dst, Size(temp.cols * 2, temp.rows * 2));
                printf("按键3按下,将图片放大
");
                break;

            case 4:
                pyrDown(temp, dst, Size(temp.cols / 2, temp.rows / 2));
                printf("按键4按下,将图片缩小
");
                break;
        }
        imshow("原图", dst);
        temp = dst;
    }
    
    return 0;
}

由于放大和缩小变换是在上一幅图像的操作基础上操作的,所以图像会变得越来越模糊。

显示效果:

技术分享图片技术分享图片




以上是关于图像的尺寸调整的主要内容,如果未能解决你的问题,请参考以下文章

使用 PrintDocument 打印图像。如何调整图像以适合纸张尺寸

在PHP中调整图像大小

调整图像大小并裁剪为新的纵横比

python 根据图像的长边尺寸将图像调整为多种不同的尺寸。

如何调整html中的图像大小以适应屏幕尺寸?

在节点js中调整图像大小