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
| void fonction (){
char lettre = 'A';
int i;
IplImage* src;
CvMemStorage* storage;
CvSeq* contour = 0;
char *filename = (char*) malloc(32*sizeof(char));
for (i=1; i<=26; i++) {
storage = cvCreateMemStorage(0);
contour = 0;
sprintf(filename, "/sdcard/OCR/ref/%c.bmp",lettre);
if(!(src=cvLoadImage(filename, CV_LOAD_IMAGE_GRAYSCALE))) LOGE("ARG ! erreur load image");
IplImage *negative = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1);
cvFindContours(src, storage, &contour, sizeof(CvChain), CV_RETR_LIST, CV_CHAIN_CODE); // EXTERNAL => mieux mais marche pas... contour = null
// draw the contours on a white image and save it
IplImage* dst = cvCreateImage(cvGetSize(src), src->depth, src->nChannels);
cvSet(dst , CV_RGB(255,255,255));
//ext:gray //holes:black
cvDrawContours(dst, contour, cvScalar(128),cvScalar(0),1,1,8);
LOGE("Lettre %c", lettre);
sprintf(filename, "/sdcard/OCR/%c.bmp",lettre);
cvSaveImage(filename,dst);
lettre++;
}
fclose(fcode);
free(filename);
} |
Partager