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%


Free Linux eBooks

Do you have the right skills?

Our IT Skills Watch page reflects an up to date IT skills demand leaning towards the Linux and Unix environment. We have considered a number of skills and operating systems.

See the result...

Linux Online Training

Learn to run Linux servers and prepare for LPI certification with Linux Academy. 104 available video lessons with PDF course notes with your own server!

Go to top