PL 4 : Image Processing

 #include<iostream>  
 #include "CImg.h"  
 using namespace std;  
 using namespace cimg_library;  
 int main(){  
     int ch;  
     do{  
                cout<<"\n----------Image Processing-----------\n";  
                cout<<"\n 1.Sharpen the image ";  
                cout<<"\n 2.Blur the image ";  
                cout<<"\n 3.Dark the image";  
                cout<<"\n 4.Brighten the image";  
                cout<<"\n 5.Rotate the image";  
                cout<<"\n 6.Get the Histogram";  
                cout<<"\n 7.Mean and Standard Deviation ";  
                cout<<"\n 8.Convolution ";  
                cout<<"\n 9.Exit";  
                cout<<"\n Enter ur choice : ";  
         cin>>ch;  
     switch(ch)  
     {  
         case 1:  
             {  
             CImg<double> image("milla.bmp");  
             image.sharpen(1000);  
             CImgDisplay main_disp(image,"Image",0);  
             while (!main_disp.is_closed()){  
             main_disp.wait();  
                               }  
             break;  
             }  
         case 2:  
             {  
             CImg<double> image("milla.bmp");  
             image.blur(2.5);  
             CImgDisplay main_disp(image,"Image",0);  
             while (!main_disp.is_closed())  
             main_disp.wait();  
             break;  
             }  
         case 3:  
             {  
             CImg<double> image("milla.bmp");  
             CImgDisplay main_disp(image,"Image",0);  
             CImg<double> darkimage(image.width(),image.height(),1,3,0);  
             for (int i=0;i<image.width();i++)  
                 for (int j=0;j<image.height();j++)  
                     for (int k=0;k<3;k++)  
                         darkimage(i,j,0,k)=image(i,j,0,k)/2;  
             CImgDisplay dark_disp (darkimage,"Dark Image",0);  
                                while (!main_disp.is_closed()){  
             main_disp.wait();  
                                }  
             break;  
             }  
         case 4:  
             {  
             CImg<double> image("milla.bmp");  
             CImgDisplay main_disp(image,"Image",0);  
             CImg<double> darkimage(image.width(),image.height(),1,3,0);  
             for (int i=0;i<image.width();i++)  
                 for (int j=0;j<image.height();j++)  
                     for (int k=0;k<3;k++)  
                         darkimage(i,j,0,k)=image(i,j,0,k)*1.18;  
             CImgDisplay dark_disp (darkimage,"Bright Image",0);  
             while (!main_disp.is_closed())  
             main_disp.wait();  
             break;  
             }  
         case 5:  
             {  
             CImg<double> image("milla.bmp");  
             int x;  
             cout<<"\n Enter the Rotating Angle..";  
             cin>>x;  
             image.rotate(x);  
             CImgDisplay main_disp(image,"Image",0);  
             while (!main_disp.is_closed())  
             main_disp.wait();  
             break;  
             }  
         case 6:  
             {  
             CImg<double> image("milla.bmp");  
             image.histogram(256);  
             image.display_graph(0,3);  
 case 7:  
             {  
                 CImg<double> image("milla.bmp");  
                 double imean=image.mean();  
                 cout<<"\n The mean of the image is : "<<imean;  
                 double var=image.variance();  
                 double sd=sqrt(var);  
                 cout<<"\n The standard deviation of the image is : "<<sd;  
                 CImgDisplay main_disp(image,"Image",0);  
                 while (!main_disp.is_closed())  
                     main_disp.wait();  
             break;  
             }  
         case 8:  
             {  
              CImg<unsigned char> image("milla.bmp"), image2("milla.bmp");  
              double a = 1.0/3.0;  
              double b = 1.0/((2.0*sqrt(2.0))+1.0);  
              CImg<> mask = CImg<>(3,3).fill(b,a,b,a,1,a,b,a,b);  
              image2.convolve(mask);  
              CImgDisplay main_disp(image,"original"), main_disp2(image2, "second");  
              while(1)  
              {  
                 main_disp.wait();main_disp2.wait();  
              }  
             }  
         case 9:  
             return 0;  
     }  
     }while(ch<=9);  
     return 0;  
 }  
SHARE
    Blogger Comment
    Facebook Comment