Redimensionner une image avec la fonction OpenCV cvResize
Il s’agit d’un petit code permettant de redimensionner une image au pourcentage souhaité par rapport à l’original. Les nouvelles tailles de largeur et de hauteur sont calculées à partir d’un pourcentage fourni en tant que 3ème argument. Fournir 100 % copiera simplement l’image originale dans une nouvelle image.
cvResize accepte également un argument d’interpolation, mais dans le cas de ce petit programme, nous utilisons l’interpolation linéaire par défaut.
#include <iostream>
#include "cv.h"
#include "highgui.h"
using namespace std;
int main( int argc, char** argv )
{
// Create an IplImage object *image
IplImage *source = cvLoadImage( argv[1]);
// Here we retrieve a percentage value to a integer
int percent = atoi(argv[3]);
// declare a destination IplImage object with correct size, depth and channels
IplImage *destination = cvCreateImage
( cvSize((int)((source->width*percent)/100) , (int)((source->height*percent)/100) ),
source->depth, source->nChannels );
//use cvResize to resize source to a destination image
cvResize(source, destination);
// save image with a name supplied with a second argument
cvSaveImage( argv[2], destination );
return 0;
}
compiler:
g++ `pkg-config opencv --cflags --libs` resize_image.cpp -o resize_image
Utilisation :
./resize_image dsc00056.jpg new_dsc00056.jpg 65%