découpage des zones noirs
SVP, j'ai besoin de votre aide.
je veux binariser une image et puis détecter les zones noirs, les découper, et les afficher .
"bien sure j'ai utilisée votre fonction "binarisation
mais le résultat n'est acceptable. le problème ,je croix, que le parcours des pixels ne se fait pas .
le code est le suivant:
int main()
{
int minX=0;
int minY=0;
CvScalar pixel;
int seuil; //seuil de binarisation
IplImage *img=cvLoadImage("persan256.jpg"); //lecture de l'image source
cvNamedWindow("Image", CV_WINDOW_AUTOSIZE); //création de fenetre d'image source
cvShowImage("Image", img); //afficher l'image source dans la fenetre
cvNamedWindow("Binarisation", CV_WINDOW_AUTOSIZE); //création de fenetre d'image binaire
seuil=127;
IplImage *img_bin=binarisation(img,seuil); //appel au fonction de binarisation
cvShowImage("Binarisation", img_bin); //afficher l'image binaire dans la fenetre
int maxX=256;
int maxY=256;
for( int i=0; i < 255; i++)
{
for (int j=0; j <255; j++)
{
recuperer le pixel//
pixel = cvGet2D(img_bin,i,j);
printf("pixel=%f\n",pixel.val[0]);
if( pixel.val[0] == 0)
{
if( j < minX)minX=j;
printf("minX=%d\n",minX);
if( i < minY)minY=i;
printf("minY=%d\n",minY);
if( j > maxX)maxX=j;
printf("maxX=%d\n",maxX);
if( i > maxX)maxX=i;
printf("maxX=%d\n",maxX);
}
cvSetImageROI(img_bin, cvRect(minX, minY, maxX-minX, maxY-minY));
cvNamedWindow("Roi");
cvShowImage("Roi", img_bin);
cvReleaseImage(&img_bin);
cvWaitKey(0);
}
}
cvWaitKey(0);
return 0 ;
}