Qt and Tesseract Linkage
-
Hello! How can i amend the pro file to make the program work?
Googled a lot about QT and Tesseract, could not find a solution yet.
Please adviseQT += core
QT -= guiCONFIG += c++11
TARGET = openCV
CONFIG += console
CONFIG -= app_bundleTEMPLATE = app
INCLUDEPATH += C:\opencv\release\install\includeLIBS += C:\opencv\release\bin\libopencv_core455.dll
LIBS += C:\opencv\release\bin\libopencv_highgui455.dll
LIBS += C:\opencv\release\bin\libopencv_imgcodecs455.dll
LIBS += C:\opencv\release\bin\libopencv_imgproc455.dll
LIBS += C:\opencv\release\bin\libopencv_calib3d455.dll
LIBS += C:\opencv\release\bin\libopencv_features2d455.dll
LIBS += C:\opencv\release\bin\libopencv_video455.dll
LIBS += C:\opencv\release\bin\libopencv_videoio455.dll
LIBS += -L"(C:\Program Files(x86)\Tesseract-OCR)" -ltesseractINCLUDEPATH += /usr/include/tesseract
INCLUDEPATH += C:\Program Files(x86)\Tesseract-OCR)
LIBS += C:\Program Files(x86)\Tesseract-OCR)
LIBS +=-LC:\Program Files(x86)\Tesseract-OCR)
-ltesseract.dll
-llept.dllLIBS += -LC:\Qt\opencv_cv2\OPENCV1\build-qt\lib
-lopencv_calib3d249d
-lopencv_contrib249d
-lopencv_core249d
-lopencv_features2d249d
-lopencv_flann249d
-lopencv_gpu249d
-lopencv_highgui249d
-lopencv_imgproc249d
-lopencv_legacy249d
-lopencv_ml249d
-lopencv_nonfree249d
-lopencv_objdetect249d
-lopencv_ocl249d
-lopencv_photo249d
-lopencv_stitching249d
-lopencv_superres249d
-lopencv_ts249d
-lopencv_video249d
-lopencv_videostab249dSOURCES += main.cpp
DEFINES += QT_DEPRECATED_WARNINGS
-
What errors are you getting? The surrounding parentheses on these lines look odd, especially the ones that don't have a matching open parenthesis. Of the LIB+= lines, you only need the first LIB+= but without the parentheses.
LIBS += -L"(C:\Program Files(x86)\Tesseract-OCR)" -ltesseract INCLUDEPATH += C:\Program Files(x86)\Tesseract-OCR) LIBS += C:\Program Files(x86)\Tesseract-OCR) LIBS +=-LC:\Program Files(x86)\Tesseract-OCR)
-
@mchinand said in Qt and Tesseract Linkage:
INCLUDEPATH += C:\Program Files(x86)\Tesseract-OCR)
LIBS += C:\Program Files(x86)\Tesseract-OCR)
LIBS +=-LC:\Program Files(x86)\Tesseract-OCR)still saying D:\PROG\May\Tesseract\main.cpp:1: error: tesseract/baseapi.h: No such file or directory
D:\PROG\May\Tesseract\main.cpp:1:10: fatal error: tesseract/baseapi.h: No such file or directory
1 | #include <tesseract/baseapi.h>
| ^~~~~~~~~~~~~~~~~~~~~current pro file
QT += core
QT -= guiCONFIG += c++11
TARGET = openCV
CONFIG += console
CONFIG -= app_bundleTEMPLATE = app
INCLUDEPATH += C:\opencv\release\install\includeLIBS += C:\opencv\release\bin\libopencv_core455.dll
LIBS += C:\opencv\release\bin\libopencv_highgui455.dll
LIBS += C:\opencv\release\bin\libopencv_imgcodecs455.dll
LIBS += C:\opencv\release\bin\libopencv_imgproc455.dll
LIBS += C:\opencv\release\bin\libopencv_calib3d455.dll
LIBS += C:\opencv\release\bin\libopencv_features2d455.dll
LIBS += C:\opencv\release\bin\libopencv_video455.dll
LIBS += C:\opencv\release\bin\libopencv_videoio455.dllINCLUDEPATH += C:\Program Files(x86)\Tesseract-OCR)
LIBS += C:\Program Files(x86)\Tesseract-OCR)LIBS += -LC:\Qt\opencv_cv2\OPENCV1\build-qt\lib
-lopencv_calib3d249d
-lopencv_contrib249d
-lopencv_core249d
-lopencv_features2d249d
-lopencv_flann249d
-lopencv_gpu249d
-lopencv_highgui249d
-lopencv_imgproc249d
-lopencv_legacy249d
-lopencv_ml249d
-lopencv_nonfree249d
-lopencv_objdetect249d
-lopencv_ocl249d
-lopencv_photo249d
-lopencv_stitching249d
-lopencv_superres249d
-lopencv_ts249d
-lopencv_video249d
-lopencv_videostab249dSOURCES += main.cpp
DEFINES += QT_DEPRECATED_WARNINGS
please advise!
-
@OlegD
Assuming the correct path isC:\Program Files(x86)\Tesseract-OCR
, everywhere you use it you need to copy/paste"C:\Program Files(x86)\Tesseract-OCR"
My guess is you need
INCLUDEPATH += "C:\Program Files(x86)\Tesseract-OCR" LIBS += -L"C:\Program Files(x86)\Tesseract-OCR"
-
Another way to avoid that: install Tesseract in a folder without spaces and special characters.
-
edited as per all recommendations of yours..
still getting errors:last pro.file output
QT += core
QT -= guiCONFIG += c++11
TARGET = openCV
CONFIG += console
CONFIG -= app_bundleTEMPLATE = app
INCLUDEPATH += C:\opencv\release\install\includeLIBS += C:\opencv\release\bin\libopencv_core455.dll
LIBS += C:\opencv\release\bin\libopencv_highgui455.dll
LIBS += C:\opencv\release\bin\libopencv_imgcodecs455.dll
LIBS += C:\opencv\release\bin\libopencv_imgproc455.dll
LIBS += C:\opencv\release\bin\libopencv_calib3d455.dll
LIBS += C:\opencv\release\bin\libopencv_features2d455.dll
LIBS += C:\opencv\release\bin\libopencv_video455.dll
LIBS += C:\opencv\release\bin\libopencv_videoio455.dllINCLUDEPATH += "C:\Tesseract-OCR"
LIBS += -L"C:\Tesseract-OCR"
INCLUDEPATH += "C:\Tesseract-OCR\include"LIBS += -LC:\Qt\opencv_cv2\OPENCV1\build-qt\lib
-lopencv_calib3d249d
-lopencv_contrib249d
-lopencv_core249d
-lopencv_features2d249d
-lopencv_flann249d
-lopencv_gpu249d
-lopencv_highgui249d
-lopencv_imgproc249d
-lopencv_legacy249d
-lopencv_ml249d
-lopencv_nonfree249d
-lopencv_objdetect249d
-lopencv_ocl249d
-lopencv_photo249d
-lopencv_stitching249d
-lopencv_superres249d
-lopencv_ts249d
-lopencv_video249d
-lopencv_videostab249dSOURCES += main.cpp
DEFINES += QT_DEPRECATED_WARNINGS
Feel stupid :D
-
@OlegD said in Qt and Tesseract Linkage:
still getting errors:
Wouldn't you want to say/confirm what these errors are??
If it's failing on
#include <tesseract/baseapi.h>
, where exactly is that file? Is it atC:\Tesseract-OCR\include\tesseract\baseapi.h
? -
Is there any chance I've installed wrong tesseract version?Downloaded in installed version from the link below
https://tesseract-ocr.github.io/tessdoc/Home.html@OlegD said in Qt and Tesseract Linkage:
edited as per all recommendations of yours..
still getting errors:last pro.file output
QT += core
QT -= guiCONFIG += c++11
TARGET = openCV
CONFIG += console
CONFIG -= app_bundleTEMPLATE = app
INCLUDEPATH += C:\opencv\release\install\includeLIBS += C:\opencv\release\bin\libopencv_core455.dll
LIBS += C:\opencv\release\bin\libopencv_highgui455.dll
LIBS += C:\opencv\release\bin\libopencv_imgcodecs455.dll
LIBS += C:\opencv\release\bin\libopencv_imgproc455.dll
LIBS += C:\opencv\release\bin\libopencv_calib3d455.dll
LIBS += C:\opencv\release\bin\libopencv_features2d455.dll
LIBS += C:\opencv\release\bin\libopencv_video455.dll
LIBS += C:\opencv\release\bin\libopencv_videoio455.dllINCLUDEPATH += "C:\Tesseract-OCR"
LIBS += -L"C:\Tesseract-OCR"
INCLUDEPATH += "C:\Tesseract-OCR\include"LIBS += -LC:\Qt\opencv_cv2\OPENCV1\build-qt\lib
-lopencv_calib3d249d
-lopencv_contrib249d
-lopencv_core249d
-lopencv_features2d249d
-lopencv_flann249d
-lopencv_gpu249d
-lopencv_highgui249d
-lopencv_imgproc249d
-lopencv_legacy249d
-lopencv_ml249d
-lopencv_nonfree249d
-lopencv_objdetect249d
-lopencv_ocl249d
-lopencv_photo249d
-lopencv_stitching249d
-lopencv_superres249d
-lopencv_ts249d
-lopencv_video249d
-lopencv_videostab249dSOURCES += main.cpp
DEFINES += QT_DEPRECATED_WARNINGS
Feel stupid :D
Is there any chance I've installed wrong tesseract version?
Downloaded in installed version from the link below
https://tesseract-ocr.github.io/tessdoc/Home.html -
@OlegD said in Qt and Tesseract Linkage:
LIBS += -LC:\Qt\opencv_cv2\OPENCV1\build-qt\lib
-lopencv_calib3d249d
-lopencv_contrib249d
-lopencv_core249d
-lopencv_features2d249d
-lopencv_flann249d
-lopencv_gpu249d
-lopencv_highgui249d
-lopencv_imgproc249d
-lopencv_legacy249d
-lopencv_ml249d
-lopencv_nonfree249d
-lopencv_objdetect249d
-lopencv_ocl249d
-lopencv_photo249d
-lopencv_stitching249d
-lopencv_superres249d
-lopencv_ts249d
-lopencv_video249d
-lopencv_videostab249dthis is incorrect
those need to be inline or concatenated via
\
to escape the (invisible) newline character -
Well, I dont know how to make it work with QT.
I've just installed package, realized that there is no instruction for QT and posted to QT forum.
Please advise how can I install it properly for QT environmentWindows
main branch, 3.05 and later
Using Tesseract!!! IMPORTANT !!! To use Tesseract in your application (to include tess or to link it into your app) see this very simple example.
Build the latest library (using Software Network client)Download the latest SW (Software Network https://software-network.org/) client from https://software-network.org/client/. Run sw setup (may require administrator access) Run sw build org.sw.demo.google.tesseract.tesseract-master.
For visual studio project using tesseract
Setup Vcpkg the Visual C++ Package Manager. Run vcpkg install tesseract:x64-windows for 64-bit. Use –head for the master branch.
Static linking
To build a self-contained tesseract.exe executable (without any DLLs or runtime dependencies), use Vcpkg as above with the following command:
vcpkg install tesseract:x64-windows-static for 64-bit vcpkg install tesseract:x86-windows-static for 32-bit
Use –head for the main branch. It may still require one DLL for the OpenMP runtime, vcomp140.dll (which you can find in the Visual C++ Redistributable 2015).
Build training toolsToday it is possible to build a full set of tess training tools on Windows with Visual Studio. You need to have the latest VS compiler (VS2019/2022 or light VS 2019/2022 build tools distro installed.
To do this:
Download the latest SW (Software Network https://software-network.org/client/) client from https://software-network.org/client/. Checkout tesseract sources git clone https://github.com/tesseract-ocr/tesseract tesseract && cd tesseract. Run sw build. Binaries will be available under .sw\out\some hash dir...
Develop Tesseract
For development purposes of Tesseract itself do the next steps:
Download and install Git, CMake and put them in PATH. Download the latest SW (Software Network https://software-network.org/) client from https://software-network.org/client/. SW is a source package distribution system. Add SW client to PATH. Run sw setup (may require administrator access) If you have a release archive, unpack it to tesseract dir.
If you’re using main branch run
git clone https://github.com/tesseract-ocr/tesseract tesseract
Run cd tesseract mkdir build && cd build cmake .. Build a solution (tesseract.sln) in your Visual Studio version. If you want to build and install from command line (e.g. Release build) you can use this command: cmake --build . --config Release --target install If you want to install to other directory that C:\Program Files (you will need admin right for this), you need to specify install path during configuration: cmake .. -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX=inst
For development purposes of training tools after cloning a repo from previous paragraph, run
sw build
You’ll see a solution link appeared in the root directory of Tesseract.
Building for x64 platform
swIf you’re building with sw+cmake, run cmake as follows:
mkdir win64 && cd win64
cmake .. -G "Visual Studio 14 2015 Win64"If you’re building with sw run sw generate, it will create a solution link for you (not yet implemented!).
-
@OlegD
All you have done is pasted the whole of the instructions. They are for you to read and act on. Only you know what you did/did not do.Well, I dont know how to make it work with QT.
I've just installed package, realized that there is no instruction for QT and posted to QT forum.
Please advise how can I install it properly for QT environmentI do not see anything related to Qt, or for Qt instructions.
Your code has#include <tesseract/baseapi.h>
.
I pointed out that from what you show there are no.h
files anywhere (that I can see).
I suggested you need to see if that file is anywhere, or sort out whatever you need to do to get it available. Assuming you need that line.
I don't use "tesseract", and I don't suppose anybody else here does either. -
It looks like what you downloaded was just the pre-built binary and associated files to use the tesseract application and not to develop your own. You will have to build the library yourself; just follow the directions that you posted above closely step by step.
-
@mchinand
So it was just a sample application? And they do not provide the.h
files with it?Does he really need to build it? IF it comes with pre-compiled external DLLs of whatever to make the (sample?) app work, can't he use those plus
.lib
s &.h
s for his own code without having to build the.dll
s?