Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question//console.cpp : Defines the entry point for the console application. #include "stdafx.h" //si vous avez choisi d'utiliser un en-tête précompilé dans votre projet #include <cv.h> #include #include <cxcore.h> #include <highgui.h> int main(int argc, char *argv[]) { IplImage *img_nvg; IplImage *img_bin; int seuil; int inverser; // initialisation IplImage *img=cvLoadImage("Sans titre.bmp"); img_nvg=cvCreateImage(cvGetSize(img), img->depth, 1); img_bin=cvCloneImage(img_nvg); //Contrôle de l'origine int flip=0; if(img->origin!=IPL_ORIGIN_TL){ flip=CV_CVTIMG_FLIP; } cvConvertImage(img, img_nvg, flip); cvNamedWindow("originale", CV_WINDOW_AUTOSIZE); cvNamedWindow("binaire", CV_WINDOW_AUTOSIZE); cvShowImage("originale", img); //binarisation seuil=127; inverser=0; cvThreshold(img_nvg, img_bin, seuil, 255, CV_THRESH_BINARY); cvShowImage("binaire", img_bin); //******************************************************** // size image CvSize size = cvSize(img_bin->width,img_bin->height); uchar *tabPixel; tabPixel = (uchar *)img->imageData; for(int i=0; i< size.height;i++) //lecture ligne par ligne { for(int j=0; j< size.width;j++) // lecture colonne par colonne { CvScalar pixel; pixel=cvGet2D(img_bin,i,j); //lecture du pixel ligne i colonne j //std::cout<<" valeur du pixel : bleu "<<pixel.val[0]<<" Vert "<<pixel.val[1]<<" Rouge "<<pixel.val[2]<<std::endl; int value = (int)pixel.val[1]; if (value<200) tabPixel[i]=tabPixel[i]+ value ; else tabPixel[i]=tabPixel[i]; //std::cout<<"valeur du pixel :"<<pixel<<std::endl; } printf("%d ",tabPixel[i]); } printf("height \n %d ",size.height); printf("width \n %d ",size.width); //************************************************* cvWaitKey(0); cvDestroyWindow( "img" ); cvDestroyWindow( "img_bin" ); cvReleaseImage( &img ); cvReleaseImage( &img_bin ); return 0; }
int value; for(int i=0; i< size.height;i++) //lecture ligne par ligne { tabPixel[i]=0; for(int j=0; j< size.width;j++) // lecture colonne par colonne { CvScalar pixel; pixel=cvGet2D(img_bin,i,j); //lecture du pixel ligne i colonne j value = (int)pixel.val[1]; tabPixel[i]+=(int)pixel.val[1] ; } printf("%d ",tabPixel[i]); }
//console.cpp : Defines the entry point for the console application. #include "stdafx.h" //si vous avez choisi d'utiliser un en-tête précompilé dans votre projet #include <cv.h> #include #include <cxcore.h> #include <highgui.h> int main(int argc, char *argv[]) { IplImage *img_nvg; IplImage *img_bin; IplImage *img_caractere; int seuil; int inverser; // initialisation IplImage *img=cvLoadImage("Sans titre.bmp"); img_nvg=cvCreateImage(cvGetSize(img), img->depth, 1); img_bin=cvCloneImage(img_nvg); //Contrôle de l'origine int flip=0; if(img->origin!=IPL_ORIGIN_TL){ flip=CV_CVTIMG_FLIP; } cvConvertImage(img, img_nvg, flip); cvNamedWindow("originale", CV_WINDOW_AUTOSIZE); cvNamedWindow("binaire", CV_WINDOW_AUTOSIZE); cvShowImage("originale", img); //binarisation seuil=127; inverser=0; cvThreshold(img_nvg, img_bin, seuil, 255, CV_THRESH_BINARY); cvShowImage("binaire", img_bin); //******************************************************** CvSize size = cvSize(img_bin->width,img_bin->height); // size image int *tabPixel; tabPixel = (int *)img->imageData; IplImage *tabImage; tabImage = (IplImage *)img->imageData; for(int i=0; i< size.height;i++) //lecture ligne par ligne { tabPixel[i]=0; for(int j=0; j< size.width;j++) // lecture colonne par colonne { CvScalar pixel; pixel=cvGet2D(img_bin,i,j); //lecture du pixel ligne i colonne j tabPixel[i]+=(int)pixel.val[0] ; } double somPixel= 225*size.width; if (tabPixel[i]==somPixel) tabPixel[i]=0; printf("%d ",tabPixel[i]); } int j=0; int y=0; int h; int k=0; do { h=0; while (tabPixel[j]==0 && j<=size.height) { y++; j++; } while (tabPixel[j]!=0 && j<=size.height) { h++; j++; } cvSetImageROI(tabImage[k],cvRect(0,y,size.width,h)); // l'erreur est ici !!!!!!! k++; } while (j<= size.height); //************************************************* cvWaitKey(0); cvDestroyWindow( "img" ); cvDestroyWindow( "img_bin" ); cvReleaseImage( &img ); cvReleaseImage( &img_bin ); return 0; }