Isolation d'un blob rouge
Bonjour à tous !
Voici mon problème : je souhaite isoler un carré en mousse rouge dans une image. Cela fonctionne parfaitement. Cependant, je ne comprends pas la valeur -80 que j'ai dû mette dans ma condition pour qu'elle marche.
Voici ma fonction :
Code:
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
|
IplImage* isolationRouge(IplImage *monImage){
IplImage *im,*im4;
int i, j;
im = monImage;
im4 = cvCreateImage(cvGetSize(im),im->depth,im->nChannels);
cvCvtColor(im, im4,CV_BGR2HSV);
for(i=0;i<im4->height*im4->widthStep;i=i+3){
if((im4->imageData[i] <= -80)){
im4->imageData[i]=0;
im4->imageData[i+1]=255;
im4->imageData[i+2]=255;
}
else{
im4->imageData[i+1]=0;
im4->imageData[i+2]=0;
}
}
cvErode(im4,im4,0,10);
cvDilate(im4,im4,0,5);
return im4;
} |
Normalement, j'aurais dû avoir un truc du style im4->imageData[i] < 10 || im4->imageData[i] > 165 non ? Est-ce que quelqu'un voit où ça cloche ?
Merci d'avance !
A+