include <stdlib.h> #include <stdio.h> #include <math.h> #include "basicImage.c" int main ( int argc, char* argv[] ) { image img, nimg; int percent, r, c; if ( argc != 4 ) { printf( "saltAndPepper oldImage noisyImage percent\n" ); exit( EXIT_FAILURE ); } /* read in the image */ readPGMimage( &img, argv[1] ); /* create a blank image */ newImage( &nimg, img.nrows, img.ncols ); /* get the noize level */ percent = atoi( argv[3] ); /* seed the random number generator */ srand( time(NULL) ); /* fill in values for the new image */ for ( r=0; r<img.nrows; r++ ) for ( c=0; c<img.ncols; c++ ) { /* decide if this pixel gets altered */ if ( rand()%100 < percent ) { /* if altered, decide if salt or pepper */ if ( rand()%2 == 0 ) setPixel( nimg, r, c, 0 ); else setPixel( nimg, r, c, 255 ); } else setPixel( nimg, r, c, getPixel( img, r, c ) ); } /* write the image to disk and free memory */ writePGMimage( nimg, argv[2] ); freeImage( &img ); freeImage( &nimg ); }
Comments: