Thank you very much Patrick for the suggestion. I've tried that before posting, but it's not the problem.
In the snippet you sent me some days ago you were using a different way for getting these coordinates, perhaps I should use it. In that case, I'll ask you how do you initialize those objects. 2010/7/27 patrickq <[email protected]> > Looks like a simple case of Y inversion - try transforming whatever Y > values you thought were right into (height - Y) where height is the > height of the image. > > On Jul 27, 1:28 am, Andres <[email protected]> wrote: > > Hello people, > > > > I'm trying to get the characters coordinates but I'm getting them > misplaced. > > > > You can see the image and the rectangles with the coordinates here: > http://silvic.com.ar/rectangles.jpg > > > > I'm using some adapted code from dlltest, and my code uses OpenCV. I'm > > posting my code below. > > > > Basically, I'm getting the character coordinates from EANYCODE_CHAR. > > > > Any hint will be greatly appreciated. > > > > Regards, > > > > Andres > > > > #include "ocr.h" > > > > #define _UNICODE > > > > #include <imgs.h> > > #include <tessdll.h> > > > > #include <cv.h> > > #include <highgui.h> > > > > #include <iostream> > > > > using namespace std; > > > > #pragma message("hay que tener definido __MSW32__") > > > > void test() > > { > > string file_path = > > "A:\\prj\\Patentes\\imgs_temp\\in\\solo_patente_0474.bmp"; > > string ret; > > > > IMAGE image; > > if (image.read_header(file_path.c_str()) < 0) > > { > > cerr<<"Can't open "<<file_path<<endl; > > return; > > } > > if (image.read(image.get_ysize ()) < 0) > > { > > cerr<<"Can't read "<<file_path<<endl; > > return; > > } > > > > string lang = "my_lang"; > > > > TessDllAPI api(lang.c_str()); > > > > api.BeginPageUpright(image.get_xsize(), image.get_ysize(), > > image.get_buffer(), > > image.get_bpp()); > > > > ETEXT_DESC* output = api.Recognize_all_Words(); > > > > IplImage *cv_image = cvLoadImage(file_path.c_str()); > > > > cvNamedWindow("read", CV_WINDOW_AUTOSIZE); > > > > int j; > > for (int i = 0; i < output->count; i = j) > > { > > const EANYCODE_CHAR* ch = &output->text[i]; > > unsigned char unistr[24]; > > > > for (j = i; j < output->count; j++) > > { > > const EANYCODE_CHAR* unich = &output->text[j]; > > > > if (ch->left != unich->left || ch->right != unich->right || > > ch->top != unich->top || ch->bottom != unich->bottom) > > break; > > unistr[j - i] = static_cast<unsigned char>(unich->char_code); > > } > > unistr[j - i] = '\0'; > > > > const char *txt = reinterpret_cast<const char*>(unistr); > > ret += txt; > > > > { > > > > cvRectangle(cv_image, cvPoint(ch->left, ch->top), > > cvPoint(ch->right, ch->bottom), CV_RGB(255,0,0), 1); > > > > cvShowImage("read", cv_image); > > while(cvWaitKey(50)==-1); > > } > > } > > cout<<"read ["<<ret<<"]"<<endl; > > > > } > > -- > You received this message because you are subscribed to the Google Groups > "tesseract-ocr" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<tesseract-ocr%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/tesseract-ocr?hl=en. > > -- You received this message because you are subscribed to the Google Groups "tesseract-ocr" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/tesseract-ocr?hl=en.

