[OpenCV Getting Started] Ajustar tamaño de imagen/recortar imagen

cambiar el tamaño de la imagen - cambiar el tamaño

cambiar el tamaño de la función

definición de función

void resize( InputArray src, //输入图像
			 OutputArray dst,//输出图像
             Size dsize, //调整成的大小
             double fx = 0, 
             double fy = 0,
             int interpolation = INTER_LINEAR 
             );

Explicación de parámetros:

  • src: imagen de entrada, clase Mat
  • dst: la imagen de salida, cuando el parámetro dsize no es 0, el tamaño de dst está determinado por dsize; de ​​lo contrario, su tamaño está determinado por los parámetros fx y fy
  • dsize: el tamaño de la imagen de salida, escrito como Tamaño (ancho, alto) (unidad: píxel)
  • fx y fy: escalado horizontal/vertical
  • interpolación: método de interpolación. Los valores son los siguientes:
    INTER_NEAREST---------interpolación del vecino más cercano
    INTER_LINEAR---------interpolación bilineal (configuración predeterminada)
    INTER_AREA---------usar área de píxeles relación Remuestreo
    INTER_CUBIC --------- Interpolación bicúbica de vecindad de 4x4 píxeles
    INTER_LANCZOS4 --------- Interpolación de Lanczos de vecindad de 8x8 píxeles
  • Nota: El parámetro dsize y el parámetro (fx, fy) no pueden ser 0 al mismo tiempo

ejemplo

código fuente:

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
#ifdef _DEBUG
#pragma comment(lib,"opencv_world453d.lib")
#else
#pragma comment(lib,"opencv_world453.lib")
#endif // _DEBUG

int main()
{
    
    
    Mat img = imread("D:\\My Bags\\图片\\Test.jpg");
    Mat outImg;
    resize(img, outImg, Size(0,0), 0.8, 0.8);//宽和高都变为原来的0.8倍
    imshow("原图", img);
    imshow("改变尺寸后", outImg);
    waitKey(0);
    return 0;
}

resultado de la operación:

delimitar imagen

clase recta

Primero crea un objeto Rect

Rect(int x, int y, int width, int height);

Explicación de parámetros:

  • Los dos primeros x, y: las coordenadas de la esquina superior izquierda del rectángulo en relación con la imagen
  • Los dos últimos ancho, alto: el ancho y alto del rectángulo
  • Las unidades son todos píxeles, y los ejes de coordenadas son como se muestra en la siguiente figura:

    el objeto de clase Mat de imagen (objeto Rect) puede devolver una imagen de clase Mat con el área rectangular correspondiente recortada

ejemplo

código fuente:

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
#ifdef _DEBUG
#pragma comment(lib,"opencv_world453d.lib")
#else
#pragma comment(lib,"opencv_world453.lib")
#endif // _DEBUG

int main()
{
    
    
    Mat img = imread("D:\\My Bags\\图片\\Test.jpg");
    Rect cropArea(0, 0, 150, 200);
    Mat outImg = img(cropArea);
    imshow("原图", img);
    imshow("裁剪后", outImg);
    waitKey(0);
    return 0;
}

resultado de la operación:

Supongo que te gusta

Origin blog.csdn.net/ZBC010/article/details/120584785
Recomendado
Clasificación