We see this same error using 3.04 tesseract branch build (w/leptonica 172
branch).
We use default build :
./configure
make DESTDIR=/tmp/tesseract304/ install
Then we 'strip --strip-debug *' on the bin + lib folders. install into
/usr/local/lib using mksquashfs
We do not see these errors when we run under the same code built on windows.
In both cases everything works as expected, only on linux do we see these
errors.
It's not clear exactly where in the code these are emanating from.
Example output:
Total count=0
Min=0.00 Really=0
Lower quartile=0.00
Median=0.00, ile(0.5)=0.00
Upper quartile=0.00
Max=0.00 Really=0
Range=1
Mean= 0.00
SD= 0.00
Bottom=0, top=533, base=0, x=0
Total count=0
Min=0.00 Really=0
Lower quartile=0.00
Median=0.00, ile(0.5)=0.00
Upper quartile=0.00
Max=0.00 Really=0
Range=1
Mean= 0.00
SD= 0.00
Bottom=0, top=533, base=0, x=0
Library info:
ldd /usr/local/lib/libtesseract.so
linux-gate.so.1 (0xb77c3000)
liblept.so.4 => /usr/local/lib/liblept.so.4 (0xb7160000)
libpng16.so.16 => /usr/local/lib/libpng16.so.16 (0xb713a000)
libjpeg.so.62 => /usr/local/lib/libjpeg-turbo/libjpeg.so.62
(0xb70c2000)
libtiff.so.5 => /usr/local/lib/libtiff.so.5 (0xb7058000)
liblzma.so.5 => /usr/local/lib/liblzma.so.5 (0xb703a000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7028000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7000000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6edd000)
libm.so.6 => /lib/libm.so.6 (0xb6e9d000)
libc.so.6 => /lib/libc.so.6 (0xb6d88000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb6d71000)
/lib/ld-linux.so.2 (0x80026000)
ldd /usr/local/lib/liblept172.so
linux-gate.so.1 (0xb771f000)
libm.so.6 => /lib/libm.so.6 (0xb74d5000)
libz.so.1 => /usr/lib/libz.so.1 (0xb74c3000)
libpng16.so.16 => /usr/local/lib/libpng16.so.16 (0xb749d000)
libjpeg.so.62 => /usr/local/lib/libjpeg-turbo/libjpeg.so.62
(0xb7425000)
libtiff.so.5 => /usr/local/lib/libtiff.so.5 (0xb73bb000)
libc.so.6 => /lib/libc.so.6 (0xb72a8000)
/lib/ld-linux.so.2 (0x8002a000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb7291000)
liblzma.so.5 => /usr/local/lib/liblzma.so.5 (0xb7273000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb725c000)
# via git branch 3.04
/tesseract-ocr/tesseract$ git describe
3.04.01-63-g5afface
leptonica used source: leptonica-1.72.tar.gz
It seems other people are now also experiencing this issue, but I don't see
much in way of resolving it anywhere... here are some build logs from
another party with issue:
https://builds.magiclantern.fm/jenkins/job/QEMU-nightly-tests/308/consoleText
https://builds.magiclantern.fm/jenkins/job/QEMU-nightly-tests/351/consoleText
We're using tesseract through emgu, here is example code:
public class Program
{
public static void Main(string[] args)
{
const string TESSCHAR_ALPHA = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
using (var tmpimg = imgh.MakeBlank<Bgr,Byte>(150,50,
Color.White).DrawText("HELLOWORLD!
0123456789",Color.Black,8,5,15).DrawText(t2,Color.Black,8,5,30).ToBitMap())
{
double tp;
var txtvals = GetImageText<Gray>(d, "c:\tessdata", tmpimg, out tp,
string.Empty, Tesseract.PageSegMode.SingleChar, true, 300, 0,
TESSCHAR_ALPHA);
if (txtvals.Length==0) throw new Exception("unable to get text");
else
{
foreach (var v in txtvals) Console.WriteLine(v);
}
}
public static string GetImageText<T>(DebugDelegate d, string
tessdata, Emgu.CV.Image<T, Byte> img, out double p, string regexfilter =
"", PageSegMode textmode = PageSegMode.SingleBlock, bool
isremovespecialchars = false, int TargetImgWidth = 300, int TargetImgH = 0,
string txtdomain_chars = "", string tesslang = TESSLANG_DEFAULT, bool
isthrowmissingdata = true) where T : struct, Emgu.CV.IColor
{
//setd(d);
p = 0;
if (isthrowmissingdata && string.IsNullOrWhiteSpace(tessdata))
throw new Exception("No TESSDATA folder was defined in
call, GetImageText failed.");
System.Text.StringBuilder text = new
System.Text.StringBuilder();
using (var tessimg =
GetTesserImage(img,TargetImgWidth,TargetImgH))
using (var eng = new TesseractEngine(tessdata, tesslang,
EngineMode.Default))
{
// via:
https://github.com/tesseract-ocr/tesseract/issues/152
if (!string.IsNullOrWhiteSpace(txtdomain_chars))
{
eng.SetVariable(TESSENGVAR_CHARWHITELIST,
txtdomain_chars);
//v("whitelist: " +
eng.GetVar<string>(TESSENGVAR_CHARWHITELIST));
}
using (var bmp = tessimg.ToBitmap())
using (var block = eng.Process(bmp, textmode))
{
var raw = block.GetText();
var finaltext = GetFilteredText(raw, regexfilter,
isremovespecialchars);
text.Append(finaltext);
p = block.GetMeanConfidence();
}
}
return text.ToString();
}
public static string GetFilteredText(string text, bool
isremovespecial = true, string regexp = "", bool isshrinkspaces = true)
{
string rem;
var txt = isremovespecial ? RemoveSpecialCharacters(text, out
rem) : text;
if (isshrinkspaces)
txt = GetTextShrink(txt);
if (!string.IsNullOrWhiteSpace(regexp))
txt = Util.rxm(txt, regexp); <-- this is just a one-liner
into System.Text.RegularExpressions.RegularExpression.Match
return txt;
}
public static string GetTextShrink(string text, string compress2oneval = "
")
{
var ctxt = Util.rxr(text, "([" + compress2oneval + "]){2,}",
"$1", false); <-- one-liner into RegularExpression.Replace
return ctxt;
}
public static Emgu.CV.Image<TColor, Byte>
GetTesserImage<TColor>(Emgu.CV.Image<TColor, Byte> src,
int targetwidth = 300, int targetheight = 0, bool ispreproc =
false) where TColor : struct, Emgu.CV.IColor
{
var isw = targetwidth > 0;
var ish = targetheight > 0;
Emgu.CV.Image<TColor, Byte> tgtimg = null;
// test for disable
if (isw || ish)
{
if (!isw)
targetwidth = src.Width;
else if (!ish)
targetheight = src.Height;
}
var isresize = (src.Width < targetwidth) || (src.Height <
targetheight);
if (!isresize) tgtimg = src.Not();
if (isresize)
{
var srcratio = (double)src.Width / src.Height;
var tgtratiow = (double)targetwidth / src.Width;
var tgtratioh = (double)targetheight / src.Height;
var isratw = tgtratiow > tgtratioh;
int tw = 0, th = 0;
if (isratw)
{
tw = (int)(src.Width * tgtratiow);
th = (int)(tw / srcratio);
}
else
{
th = (int)(src.Height * tgtratioh);
tw = (int)(th / srcratio);
}
tgtimg = src.Not().Resize(tw, th,
Emgu.CV.CvEnum.Inter.Cubic);
}
if (ispreproc)
{
using (Emgu.CV.Image<Emgu.CV.Structure.Gray, Byte> graytgt
= imgh.Convert<TColor, Emgu.CV.Structure.Gray>(tgtimg))
{
Emgu.CV.CvInvoke.AdaptiveThreshold(graytgt, graytgt,
255, Emgu.CV.CvEnum.AdaptiveThresholdType.GaussianC,
Emgu.CV.CvEnum.ThresholdType.Binary, 15, 20);
Emgu.CV.CvInvoke.EqualizeHist(graytgt, graytgt);
tgtimg = imgh.Convert<Emgu.CV.Structure.Gray,
TColor>(graytgt);
}
}
return tgtimg;
}
on Emgu side, Tesseract.TesseractEngine.cs has this informational
(auto-generated) header:
#region Assembly Tesseract-4Tgt.dll, v4.0.30319
// C:\Users\ppsupport1\Documents\Visual Studio
2010\Projects\bp\Libraries\bs\dlls\Tesseract-4Tgt.dll
#endregion
It was run with no special parameters:
mono test.exe
$ mono --version
Mono JIT compiler version 4.4.2 (Stable 4.4.2.11/f72fe45 Sun Sep 18
09:57:57 UTC 2016)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors.
www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
$ ldd `which mono`
linux-gate.so.1 (0xb7734000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb760d000)
libm.so.6 => /lib/libm.so.6 (0xb75bc000)
librt.so.1 => /lib/librt.so.1 (0xb75b4000)
libdl.so.2 => /lib/libdl.so.2 (0xb75b0000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7599000)
libc.so.6 => /lib/libc.so.6 (0xb7486000)
/lib/ld-linux.so.2 (0x800b4000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb746f000)
Realize there is probably a simpler reproduce but since this seems to be
information-only and no debugging was enabled and others were seeing this,
figured I'd share some of our data.
We also have many windows10 builds of same software that do no experience
these messages.
On Sunday, August 2, 2015 at 1:45:11 PM UTC-5, zdenop wrote:
>
> This is not standard behavior. How you use library?
> Please provide simple example case.
>
> Zdenko
>
> On Sun, Aug 2, 2015 at 7:30 PM, Matt Hill <[email protected] <javascript:>
> > wrote:
>
>> Using Tesseract as a library, I get a ton of this information printed to
>> the console:
>>
>>
>> Total count=0
>>
>> Min=0.00 Really=0
>>
>> Lower quartile=0.00
>>
>> Median=0.00, ile(0.5)=0.00
>>
>> Upper quartile=0.00
>>
>> Max=0.00 Really=0
>>
>> Range=1
>>
>> Mean= 0.00
>>
>> SD= 0.00
>>
>> Bottom=0, top=38, base=0, x=0
>>
>>
>> Is there any option or way to disable this?
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "tesseract-ocr" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/tesseract-ocr.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/tesseract-ocr/a1e18d78-c2ca-431a-9b16-5b5cbcb13eb5%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/tesseract-ocr/a1e18d78-c2ca-431a-9b16-5b5cbcb13eb5%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"tesseract-ocr" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/tesseract-ocr.
To view this discussion on the web visit
https://groups.google.com/d/msgid/tesseract-ocr/04e0e6d4-0ed2-48e1-90be-a335e12bc2c6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.