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