|
Resize an image with OpenCV cvResize function |
|
This is a small code to resize an image to a desired percentage from an original. New size of width and height are calculated from a percentage supplied as a 3th argument. Supplying 100% will simply copy the original image to new image.
cvResize also accepts an interpolation argument, however in case of this small program we use the default linear interpolation.
#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;
}
Compile:
g++ `pkg-config opencv --cflags --libs` resize_image.cpp -o resize_image
Usage:
./resize_image dsc00056.jpg new_dsc00056.jpg 65%
|