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: