Are you sure the image returned from GetBinaryImage() is >= 24bit/
pixel?

(I'm newbie to Tesseract [and leptonica], but)
I think I read something somewhere that internally tesseract may be
using 8-bit/pixel images, and that may be what's being returned from
the GetBinaryImage() - the code you've presented appears to expect >=
24bit/pixel image...

On Oct 17, 9:39 am, merve t <mervet2...@gmail.com> wrote:
> Hello,
> I wrote this code:
>
> ---------------------------------------------------------------------------­-----
> tesseract::ResultIterator* ri=api.GetIterator();
> Pix* pixa=(*ri).GetBinaryImage(tesseract::RIL_SYMBOL);
> l_uint32 width=pixGetWidth(pixa);
> l_uint32 wpl=pixGetWpl(pixa);
> l_uint32 h=pixGetHeight(pixa);
> int i=0;
> for(i=0;i<h;i++){
> l_uint32* imageData=pixGetData(pixa)+i*width;
> for(int j=0;j<width;j++) {
> int a=128,b=128,c=128;
> SET_DATA_BYTE(imageData+j, COLOR_BLUE,a);
> SET_DATA_BYTE(imageData+j, COLOR_GREEN,b);
> SET_DATA_BYTE(imageData+j, COLOR_RED,c);
>
> }
> }
>
> pixDestroy(&pixa);
>
> ---------------------------------------------------------------------------­-----
>
> it generates this output:
>
> *** glibc detected *** ./deneme2346: free(): invalid next size (normal):
> 0x092c6fb0 ***
> ======= Backtrace: =========
> /lib/i386-linux-gnu/libc.so.6(+0x6b961)[0xfad961]
> /lib/i386-linux-gnu/libc.so.6(+0x6d28b)[0xfaf28b]
> /lib/i386-linux-gnu/libc.so.6(cfree+0x6d)[0xfb241d]
> /usr/local/lib/liblept.so.0(pixDestroy+0x6d)[0x67a1bbd]
> ./deneme2346[0x80497ac]
> ./deneme2346[0x80498a1]
> /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0xf58e37]
> ./deneme2346[0x80490b1]
> ======= Memory map: ========
> 00110000-00151000 r-xp 00000000 08:06 2002695
> /usr/lib/libhighgui.so.2.1.0
> 00151000-00152000 r--p 00040000 08:06 2002695
> /usr/lib/libhighgui.so.2.1.0
> 00152000-00153000 rw-p 00041000 08:06 2002695
> /usr/lib/libhighgui.so.2.1.0
> 00153000-00154000 rw-p 00000000 00:00 0
> 00154000-0027a000 r-xp 00000000 08:06 2002737    /usr/lib/libcvaux.so.2.1.0
> 0027a000-0027c000 r--p 00125000 08:06 2002737    /usr/lib/libcvaux.so.2.1.0
> 0027c000-0027d000 rw-p 00127000 08:06 2002737    /usr/lib/libcvaux.so.2.1.0
> 0027d000-0027e000 rw-p 00000000 00:00 0
> 0027e000-00288000 r-xp 00000000 08:06 2242940
> /usr/local/lib/libtesseract_viewer.so.3.0.1
> 00288000-00289000 r--p 00009000 08:06 2242940
> /usr/local/lib/libtesseract_viewer.so.3.0.1
> 00289000-0028a000 rw-p 0000a000 08:06 2242940
> /usr/local/lib/libtesseract_viewer.so.3.0.1
> 0028a000-0028f000 r-xp 00000000 08:06 2242915
> /usr/local/lib/libtesseract_cutil.so.3.0.1
> 0028f000-00290000 r--p 00005000 08:06 2242915
> /usr/local/lib/libtesseract_cutil.so.3.0.1
> 00290000-00291000 rw-p 00006000 08:06 2242915
> /usr/local/lib/libtesseract_cutil.so.3.0.1
> 00291000-002a6000 r-xp 00000000 08:06 525186     /lib/i386-linux-gnu/
> libpthread-2.13.so
> 002a6000-002a7000 r--p 00015000 08:06 525186     /lib/i386-linux-gnu/
> libpthread-2.13.so
> 002a7000-002a8000 rw-p 00016000 08:06 525186     /lib/i386-linux-gnu/
> libpthread-2.13.so
> 002a8000-002aa000 rw-p 00000000 00:00 0
> 002aa000-002ce000 r-xp 00000000 08:06 525158     /lib/i386-linux-gnu/
> libm-2.13.so
> 002ce000-002cf000 r--p 00023000 08:06 525158     /lib/i386-linux-gnu/
> libm-2.13.so
> 002cf000-002d0000 rw-p 00024000 08:06 525158     /lib/i386-linux-gnu/
> libm-2.13.so
> 002d3000-004db000 r-xp 00000000 08:06 2002689    /usr/lib/libcxcore.so.2.1.0
> 004db000-004dc000 ---p 00208000 08:06 2002689    /usr/lib/libcxcore.so.2.1.0
> 004dc000-004de000 r--p 00208000 08:06 2002689    /usr/lib/libcxcore.so.2.1.0
> 004de000-004e2000 rw-p 0020a000 08:06 2002689    /usr/lib/libcxcore.so.2.1.0
> 004e2000-004e3000 rw-p 00000000 00:00 0
> 004e3000-00521000 r-xp 00000000 08:06 2242905
> /usr/local/lib/libtesseract_classify.so.3.0.1
> 00521000-00522000 r--p 0003d000 08:06 2242905
> /usr/local/lib/libtesseract_classify.so.3.0.1
> 00522000-00523000 rw-p 0003e000 08:06 2242905
> /usr/local/lib/libtesseract_classify.so.3.0.1
> 00523000-0057c000 rw-p 00000000 00:00 0
> 0057c000-00596000 r-xp 00000000 08:06 525149
> /lib/i386-linux-gnu/libgcc_s.so.1
> 00596000-00597000 r--p 00019000 08:06 525149
> /lib/i386-linux-gnu/libgcc_s.so.1
> 00597000-00598000 rw-p 0001a000 08:06 525149
> /lib/i386-linux-gnu/libgcc_s.so.1
> 00598000-0059f000 r-xp 00000000 08:06 525190     /lib/i386-linux-gnu/
> librt-2.13.so
> 0059f000-005a0000 r--p 00006000 08:06 525190     /lib/i386-linux-gnu/
> librt-2.13.so
> 005a0000-005a1000 rw-p 00007000 08:06 525190     /lib/i386-linux-gnu/
> librt-2.13.so
> 005a4000-005a5000 r-xp 00000000 00:00 0          [vdso]
> 005a5000-005ee000 r-xp 00000000 08:06 2242896
> /usr/local/lib/libtesseract_ccstruct.so.3.0.1
> 005ee000-005ef000 r--p 00048000 08:06 2242896
> /usr/local/lib/libtesseract_ccstruct.so.3.0.1
> 005ef000-005f0000 rw-p 00049000 08:06 2242896
> /usr/local/lib/libtesseract_ccstruct.so.3.0.1
> 005f0000-005f1000 rw-p 00000000 00:00 0
> 005f1000-005f4000 r-xp 00000000 08:06 1972534
> /usr/lib/i386-linux-gnu/libgthread-2.0.so.0.2800.6
> 005f4000-005f5000 r--p 00003000 08:06 1972534
> /usr/lib/i386-linux-gnu/libgthread-2.0.so.0.2800.6
> 005f5000-005f6000 rw-p 00004000 08:06 1972534
> /usr/lib/i386-linux-gnu/libgthread-2.0.so.0.2800.6
> 005f6000-005f8000 r-xp 00000000 08:06 1972455
> /usr/lib/i386-linux-gnu/libXcomposite.so.1.0.0
> 005f8000-005f9000 r--p 00001000 08:06 1972455
> /usr/lib/i386-linux-gnu/libXcomposite.so.1.0.0
> 005f9000-005fa000 rw-p 00002000 08:06 1972455
> /usr/lib/i386-linux-gnu/libXcomposite.so.1.0.0
> 005fa000-0060e000 r-xp 00000000 08:06 2242971
> /usr/local/lib/libtesseract_api.so.3.0.1
> 0060e000-0060f000 r--p 00013000 08:06 2242971
> /usr/local/lib/libtesseract_api.so.3.0.1
> 0060f000-00610000 rw-p 00014000 08:06 2242971
> /usr/local/lib/libtesseract_api.so.3.0.1
> 00610000-00668000 r-xp 00000000 08:06 1972589
> /usr/lib/i386-linux-gnu/libtiff.so.4.3.3
> 00668000-0066a000 r--p 00057000 08:06 1972589
> /usr/lib/i386-linux-gnu/libtiff.so.4.3.3
> 0066a000-0066b000 rw-p 00059000 08:06 1972589
> /usr/lib/i386-linux-gnu/libtiff.so.4.3.3
> 0066b000-0067e000 r-xp 00000000 08:06 525204
> /lib/i386-linux-gnu/libz.so.1.2.3.4
> 0067e000-0067f000 r--p 00012000 08:06 525204
> /lib/i386-linux-gnu/libz.so.1.2.3.4
> 0067f000-00680000 rw-p 00013000 08:06 525204
> /lib/i386-linux-gnu/libz.so.1.2.3.4
> 00680000-006a3000 r-xp 00000000 08:06 525129
> /lib/i386-linux-gnu/libpng12.so.0.44.0
> 006a3000-006a4000 r--p 00022000 08:06 525129
> /lib/i386-linux-gnu/libpng12.so.0.44.0
> 006a4000-006a5000 rw-p 00023000 08:06 525129
> /lib/i386-linux-gnu/libpng12.so.0.44.0
> 006a5000-006ea000 r-xp 00000000 08:06 1972528
> /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.2800.6
> 006ea000-006eb000 r--p 00044000 08:06 1972528
> /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.2800.6
> 006eb000-006ec000 rw-p 00045000 08:06 1972528
> /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.2800.6
> 006ee000-0070e000 r-xp 00000000 08:06 2242900
> /usr/local/lib/libtesseract_ccutil.so.3.0.1
> 0070e000-0070f000 r--p 0001f000 08:06 2242900
> /usr/local/lib/libtesseract_ccutil.so.3.0.1
> 0070f000-00710000 rw-p 00020000 08:06 2242900
> /usr/local/lib/libtesseract_ccutil.so.3.0.1
> 00710000-00712000 rw-p 00000000 00:00 0
> 00712000-00721000 r-xp 00000000 08:06 3276839
> /usr/lib/i686/cmov/libavutil.so.50.15.1
> 00721000-00722000 r--p 0000e000 08:06 3276839
> /usr/lib/i686/cmov/libavutil.so.50.15.1
> 00722000-00723000 rw-p 0000f000 08:06 3276839
> /usr/lib/i686/cmov/libavutil.so.50.15.1
> 00723000-00726000 rw-p 00000000 00:00 0
> 00726000-0072e000 r-xp 00000000 08:06 2242930
> /usr/local/lib/libtesseract_neural.so.3.0.1
> 0072e000-0072f000 r--p 00007000 08:06 2242930
> /usr/local/lib/libtesseract_neural.so.3.0.1
> 0072f000-00730000 rw-p 00008000 08:06 2242930
> /usr/local/lib/libtesseract_neural.so.3.0.1Aborted
>
> where am i wrong, this code is only a testing of my tesseract usage, i want
> to get Pix pixel values change them convert into some other image format for
> example for OpenCV.
>
> Thanks for any idea.

-- 
You received this message because you are subscribed to the Google
Groups "tesseract-ocr" group.
To post to this group, send email to tesseract-ocr@googlegroups.com
To unsubscribe from this group, send email to
tesseract-ocr+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/tesseract-ocr?hl=en

Reply via email to