Open GoogleCodeExporter opened 8 years ago
I built the wrapper under vs2010 netframework 4.
I confirm that the version is different from the IPoVn_Release_x86.zip.
It seems that the one in '.\dotnetwrapper\TesseractEngineWrapper' is from R552.
With the wrapper I built I have the issue 'RetrieveResultDetail' always NULL.
Many thanks for the great work.
Original comment by cesare.e...@gmail.com
on 23 Jul 2011 at 5:21
1. Svn source is not current version, which I succeed to integrate
libleptxxx.lib into tesseract proeject, also add some functions supported to
create Pix from buffer directly. I will update soon.
2. Current source are: /trunk/dotnetwrapper/source/*.*
This version requires libleptxxx.dll for loading tesseract.dll assembly.
You all should compile it succeed with debug also release mode.
3. The engine wrapper for tesseract-ocr v3.01 r552 is different to v3.01 r590.
With r552: I have changed some .h/.cpp files from some projects => It will not
compatible with furthermore changing of tesseract-ocr, so I have to make some
wrapper for r590, in which I hope it will adapt to official tesseract-ocr v3.01
release.
With r590: I have changed only some line code in ccmain project to load
tessdata from any location, please have a look at line #106 in tessedit.cpp and
add _BUILDASDLL preprocessor to project configuration.
- with wrapper: all things are in source\api\
@all: I want to make sure that: I developed on vs2008, and build/refer all x86
platform. Everything else, I have not tested yet.
You all should use x86 assemblies (from downloads tab) for x86 application.
Sorry about any confusing! I will try to make them better in next version soon!
Thanks!
Original comment by congnguy...@gmail.com
on 24 Jul 2011 at 3:17
Thanx for the quick replay I look forward to checking out the source for latest
version of the wrapper when available.
On a related note you may want to build the wrapper (vs2008) in release
configuration and distribute those dlls. Instead of the dlls generated by the
debug configuration since one cannot redistribute the debug version of Visual
C++ 2008 Runtime (I had to install Visual Studio 2008 to use the distributed
version of the wrapper).
Original comment by Charles....@gmail.com
on 24 Jul 2011 at 6:30
Tanks for the replay.
As Charles says, me too I faced the problem in distribute dlls generated in
debug.
First for the netframework 2 (minor), second for the sidebyside error (event id
33) on Microsoft.VC90.DebugCRT... that I don't know how to resolve even
installing the C++ runtime for Vs2008.
Waiting for the official R590 the actual version generated in release could
help a lot.
Thanx again.
Original comment by cesare.e...@gmail.com
on 24 Jul 2011 at 7:05
You can resolve the side by side error by compiling the solution in release
configuration after making the required project setting changes as described in
the wiki. This way the resulting dll only depends on the Release Visual 2008
C++ runtime which can be redistributed with your setup program(s).
Alternatively if you want to use the latest API for ROI or other nice stuff
then just make sure you've got Visual Studio 2008 installed, if you have it,
which should do for development purposes until we have the updated source
and\or a release build available.
Original comment by Charles....@gmail.com
on 24 Jul 2011 at 9:37
The IPoVn_Release_x86.zip package (built as x86 platform, release mode) are
tesseract-ocr v3.01 r590 .net wrapper. Link here:
http://code.google.com/p/tesseractdotnet/downloads/list
@cesare...: as I mention that I developed on vs2008 team, so please have a test
on vs2008 IDE. It should not test on vs2010 without re-compiling.
Some examples about how to use them please refer to
tesseractdotnetwrapper_r590.zip package.
Original comment by congnguy...@gmail.com
on 24 Jul 2011 at 12:29
Unfortunately the tesseract.dll in the IPoVn_Release_x86.zip package still
depends on the Debug version of the Visual C++ runtime. Perhaps the settings on
the tesseract project aren't correct or it depends on the debug version of a
library?
Here is the logs I get when I try and run my demo app:
Application Exception:
System.IO.FileLoadException: Could not load file or assembly 'tesseract.dll' or
one of its dependencies. The application has failed to start because its
side-by-side configuration is incorrect. Please see the application event log
or use the command-line sxstrace.exe tool for more detail. (Exception from
HRESULT: 0x800736B1)
at TesseractOCRDemo.Program.Main(String[] args)
Event Log:
Activation context generation failed for "C:\...\tesseract.dll". Dependent
Assembly
Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e1
8e3b",type="win32",version="9.0.21022.8" could not be found. Please use
sxstrace.exe for detailed diagnosis.
Anyway I think this issue is covered by Issue #1 or if not should be filed as a
separate issue. Thoughts?
Original comment by Charles....@gmail.com
on 24 Jul 2011 at 10:54
I don't know this link
(http://simple-pc-help.com/How-To-Safely-Fix-Error-0x800736b1/) is helpful or
not? Please have a quick test once :).
Original comment by congnguy...@gmail.com
on 25 Jul 2011 at 12:26
If you have not install vcresdist_x86 sp1, you have to install it first.
Try to download and install vcresdist_x86 here:
http://www.microsoft.com/download/en/details.aspx?id=5582
The Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
installs runtime components of Visual C++ Libraries required to run
applications developed with Visual C++ SP1 on a computer that does not
have Visual C++ 2008 SP1 installed.
Original comment by congnguy...@gmail.com
on 25 Jul 2011 at 12:29
I have installed the "The Microsoft Visual C++ 2008 SP1 Redistributable Package
(x86)" however I believe the issue is that tesseract.dll in the
IPoVn_Release_x86.zip package is dependent on the DEBUG version of the
Microsoft Visual C++ 2008 Runtime which is not included in the Redistributable
Package. This is made apparent in the event log or by running sxstrace.exe.
Another telling sign is that my demo program works fine on a machine with
Visual Studio 2008 installed; presumably because the debug version of the
runtime is installed by Visual Studio 2008.
Original comment by Charles....@gmail.com
on 25 Jul 2011 at 2:36
@congnguy:
The http://simple-pc-help.com/How-To-Safely-Fix-Error-0x800736b1/ you suggested
is a cleaner tool ... and as all others like this for 'only €29,97' promises
all possible miracles on your machine. No comment.
I built the wrapper with VS2008 IDE (see your comment 6), without problem.
It contains new methods as expected. Now, I found a problem in recognizing: the
method Recognize is applied to the image and returns an unformatted string.
In my application I need the recognition per Line, so I used the AnaliseLayout
method with ePageSegMode.PSM_SINGLE_LINE. For each Blocks, Paragraphs, Lines,
Words I finally found the property TEXT: this property is always EMPTY an also
the CharList contains always zero but the Charlist.Count property is correct.
For sure I missed something and in the samples I didn't found a way for my
needs. Would you help me, please?
Original comment by cesare.e...@gmail.com
on 25 Jul 2011 at 6:17
Sorry, I found link after searching around on internet :)
AnaliseLayout:
=> return document-layout structure as doucument >> blocks >> paragraphs >> ...
Means that they are coordinate of found blobs, they does not contains any
recognition item!
You can give it some parameters as you usually do with origin tesseract-ocr
engine, ie. ePageSegment mode, some relative variables...
Recognize:
=> return recognized text
=> You can recognize on whole image, or only on region of interest, use UseROI,
ROI properties as samples on example solution.
Example: Recognize on each line
0. Do some image-preprocessing-functions if possible...
1. Do analyse layout
TesseractProcessor processor = ???
Set parameters/variables if need???
// get document-layout
Document doc = processor.AnalyseLayout(...);
2. Do some image-enhancement-functions for each level-blob if possible
3. Recognize on each line as below:
//set use ROI flag here
processor.UseROI = true;
-foreach Block in document
--foreach Paragraph in block
--foreach TextLine in paragraph
------//set ROI to processor corresponding to current TextLine(l, t, r, b)
------processor.ROI = new Rectangle(l, t, r-l+1, b-r+1);
------recongized_text = processor.Recognize(...);
4. Do some post-processing-functions here if possible
Original comment by congnguy...@gmail.com
on 25 Jul 2011 at 8:06
Ok, so the tesseract.Dll in the Ipov release x86 requires libleptxxx.dll !
Original comment by osiri...@gmail.com
on 25 Jul 2011 at 8:14
No I believe the latest release (IPoVn_Release_x86.zip) integrates the
libleptxxx dependency the only deployment issue that I'm aware of atm is that
tesseract.dll has a dependency on the debug version of Visual C++ 2008 runtime,
effectively meaning that you must have Visual Studio 2008 installed on the
machine to use the library.
Original comment by Charles....@gmail.com
on 25 Jul 2011 at 8:55
@congnguy...: about comment 12.
I have this error: 'useroi' is not a member of
'OCR.TesseractWrapper.TesseractProcessor' ...
Sorry, something more is missing in my build, I guess.
I solved submitting to Recognize a cropped image to the bounds of each
TextLine.
The process is very slow... I hope that with ROI will be better.
Many thanks.
Original comment by cesare.e...@gmail.com
on 25 Jul 2011 at 9:18
@cesare...: UseROI only exists in IPoVn_Release_x86.zip package,
tesseractdotnetwrapper_r590.zip package
Original comment by congnguy...@gmail.com
on 25 Jul 2011 at 10:07
@cesare...: you can modify some line code as below to drive tesseract recognize
only on ROI:
api->SetImage(pix);
// please help me check SetRectangle() again, thanks!
api->SetRectangle(left, top, width, height);
bool succed = api->Recognize(null) >= 0;
Original comment by congnguy...@gmail.com
on 25 Jul 2011 at 10:14
Hope I modified the correct module...
There are errors, see attach.
Original comment by cesare.e...@gmail.com
on 25 Jul 2011 at 11:01
Attachments:
You have to pass ROI (left, top, width, height) to the function! The
compilation errors are clearly!
Original comment by congnguy...@gmail.com
on 25 Jul 2011 at 11:56
Maybe, you should call SetRectangle() before SetImage() for speed. Please help
me check this in origin tesseract-ocr engine comments :D.
Original comment by congnguy...@gmail.com
on 25 Jul 2011 at 12:37
You are right, I know what it means, but my knowlege of C++ is exactly a big
zero.
I already have the workaround for my needs and if you have no time to give me
all informations, I can understand.
Thank you, I'll wait for the official release when will be ready.
Original comment by cesare.e...@gmail.com
on 25 Jul 2011 at 1:24
I confirm there is a depency with something VS 2008 installs.
My project with working fine on my other computer, and I get the
FileLoadException again now since im on the computer without VS 2008
Original comment by osiri...@gmail.com
on 25 Jul 2011 at 5:44
Here is the error i found in the Event logs :
\bin\Debug\tesseract.dll". Dependent Assembly
Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e1
8e3b",type="win32",version="9.0.21022.8" could not be found. Please use
sxstrace.exe for detailed diagnosis.
Original comment by osiri...@gmail.com
on 25 Jul 2011 at 6:41
Any ETA on the sources for the latest binaries (r590)? Perhaps you could just
add the wrapper files as a new directory under source control until you have
time to properly update the project(s)?
Original comment by Charles....@gmail.com
on 8 Aug 2011 at 12:42
@all: new version is here:
http://tesseractdotnet.googlecode.com/files/tesseractdotnet_v301_r590.zip
The package includes:
- x86release assemblies
- all source codes
Original comment by congnguy...@gmail.com
on 10 Aug 2011 at 5:16
Thanx for the update mate.
Original comment by Charles....@gmail.com
on 10 Aug 2011 at 5:41
Tesseract 3.01 (r639) has been released. Please update SVN or provide a wrapper
for that release. Thanks.
Original comment by nguyen...@gmail.com
on 29 Oct 2011 at 4:39
here is a patch created with TortoiseSVN from my working version of
tesseract+wrapper. the svn version of teseract at this moment is r639.
Original comment by tanelte...@gmail.com
on 6 Nov 2011 at 9:15
Attachments:
I forked tesseract-ocr and merged in tesseractdotnet in on github. Note that
this fork is currently only targeting .NET 4.0 not .NET 3.5 like the current
version and does not have the extra thresholders or other changes (it's just a
wrapper around tesseract-ocr). https://github.com/charlesw/tesseract-ocr-dotnet
Original comment by Charles....@gmail.com
on 6 Nov 2011 at 10:31
@tanel & Charles: Yours is vs2010, which produces a .NET 4.0 DLL. I need one
for .NET 2.0. Can you make a patch for vs2008? Thanks.
Original comment by nguyen...@gmail.com
on 7 Nov 2011 at 12:44
Yes I'm aware of that and yes I can update it to also produce a .NET 2.0 DLL,
but not sure when I'll be able to do so. I'll post an update when done.
Original comment by Charles....@gmail.com
on 7 Nov 2011 at 12:59
Thanks. I'm looking forward to it.
Original comment by nguyen...@gmail.com
on 13 Nov 2011 at 3:27
Just letting you know that I've uploaded a version for .NET 2.0. If you have
any issues please let me know (just file an issue, on github, and I'll see what
I can do).
Original comment by Charles....@gmail.com
on 16 Nov 2011 at 10:58
It looks good. Thank you. Hope it be incorporated into the trunk soon.
Original comment by nguyen...@gmail.com
on 26 Nov 2011 at 6:24
Original issue reported on code.google.com by
Charles....@gmail.com
on 21 Jul 2011 at 11:34