1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
   |  
/*Fonction qui affecte une couleur BW au pixel (i,j) de l'image img*/
 
void put_color_BW(IplImage** img, int i, int j, int C){
  CvPoint pt = {i,j};
  ((uchar*)((*img)->imageData + (*img)->widthStep*pt.y))[pt.x]=C;
}
 
/*Fonction qui recupere la couleur BW du pixel (i,j) de l'image img*/
void get_color_BW(IplImage* img, int i, int j, int *C){
  CvPoint pt = {i,j};
  *C=((uchar*)(img->imageData + img->widthStep*pt.y))[pt.x];
}
 
int main(){
  IplImage *img, *img_deux=0;
  int height,width,step,channels,depth, i,j,c;
  uchar *data, ;
 
  img = cvLoadImage ("fruits_gris.jpg",0);
 
  height    = img->height;
  width     = img->width;
  step      = img->widthStep;
  channels  = img->nChannels;
  depth     = img->depth;
  data      = (uchar *)img->imageData; 
 
 img_deux = cvCreateImage(cvSize(width,height),8,1);
 
 int seuil =60;
 
      for (i=0;i<=600;i++){
	for (j=0;j<=600;j++) {
             get_color_BW(img, i, j, &c);
             if (c>seuil){
                 put_color_BW(&img_deux, i, j,0);}
            else{
                  put_color_BW(&img_deux, i, j,1);}
	  }
}
  cvNamedWindow("Image seuil",1);
  cvShowImage("Image seuil",img_deux);
  //cvSaveImage("Seuil.jpg", img_deux);
  cvWaitKey(0);
  cvReleaseImage(&img);
  cvReleaseImage(&img_deux);
  return 0;                    
} | 
Partager