图像的尺寸调整

本次使用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按下,将图片放大\n");
                break;

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

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

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

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

显示效果:

猜你喜欢

转载自www.cnblogs.com/carlber/p/9661354.html