opencv4nodejs: fatal error: 'tesseract/baseapi.h' file not found
Hi,
I have seen that with the new version @justadudewhohacks has made it possible to build opencv within node. That is fantastic, thank you so much! With my hobby skills I could have never achieved that 😃
I have now tried to run your opencv-electron example using this new version 3.0.3. First I had to update electron and electron-rebuild, but then when running npm install I keep receiving
fatal error: ‘tesseract/baseapi.h’ file not found.
Here is the whole output:
[ 75%] Building CXX object modules/calib3d/CMakeFiles/opencv_calib3d.dir/src/ap3p.cpp.o In file included from /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/ocr_holistic.cpp:5: /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/precomp.hpp:54:10: fatal error: ‘tesseract/baseapi.h’ file not found #include <tesseract/baseapi.h> ^~~~~~~~~~~~~~~~~~~~~ In file included from /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/ocr_beamsearch_decoder.cpp:43: /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/precomp.hpp:54:10: fatal error: ‘tesseract/baseapi.h’ file not found #include <tesseract/baseapi.h> ^~~~~~~~~~~~~~~~~~~~~ In file included from /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/ocr_tesseract.cpp:43: /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/precomp.hpp:54:10: fatal error: ‘tesseract/baseapi.h’ file not found #include <tesseract/baseapi.h> ^~~~~~~~~~~~~~~~~~~~~ In file included from /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/ocr_hmm_decoder.cpp:43: /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/precomp.hpp:54:10: fatal error: ‘tesseract/baseapi.h’ file not found #include <tesseract/baseapi.h> ^~~~~~~~~~~~~~~~~~~~~ In file included from /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/erfilter.cpp:43: /Users/fakob/opencv-electron-3.0.3/node_modules/opencv-build/opencv/opencv_contrib/modules/text/src/precomp.hpp:54:10: fatal error: ‘tesseract/baseapi.h’ file not found #include <tesseract/baseapi.h> ^~~~~~~~~~~~~~~~~~~~~ 1 error generated. make[2]: *** [modules/text/CMakeFiles/opencv_text.dir/src/ocr_holistic.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs… 1 error generated. make[2]: *** [modules/text/CMakeFiles/opencv_text.dir/src/ocr_tesseract.cpp.o] Error 1 [ 75%] Building CXX object modules/line_descriptor/CMakeFiles/opencv_line_descriptor.dir/src/binary_descriptor.cpp.o 1 error generated. [ 75%] Building CXX object modules/saliency/CMakeFiles/opencv_saliency.dir/src/BING/CmShow.cpp.o make[2]: *** [modules/text/CMakeFiles/opencv_text.dir/src/ocr_beamsearch_decoder.cpp.o] Error 1 1 error generated. [ 75%] Building CXX object modules/line_descriptor/CMakeFiles/opencv_line_descriptor.dir/src/binary_descriptor_matcher.cpp.o make[2]: *** [modules/text/CMakeFiles/opencv_text.dir/src/ocr_hmm_decoder.cpp.o] Error 1 [ 75%] Building CXX object modules/saliency/CMakeFiles/opencv_saliency.dir/src/BING/FilterTIG.cpp.o 1 error generated. make[2]: *** [modules/text/CMakeFiles/opencv_text.dir/src/erfilter.cpp.o] Error 1 make[1]: *** [modules/text/CMakeFiles/opencv_text.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs… [ 75%] Building CXX object modules/line_descriptor/CMakeFiles/opencv_line_descriptor.dir/src/draw.cpp.o
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 18 (4 by maintainers)
@GiulioPettenuzzo Let’s say you receive output like this from your shell:
The non-ideal, but definitely workable solution is to:
~/opencv_contrib/modules/text/src/precomp.hpp#include <tesseract/baseapi.h>to an absolute location (e.g.#include "/usr/local/Cellar/tesseract/4.0.0_1/include/tesseract/baseapi.h")This assumes of course that’s where base directory of tesseract is, but that’s how you can “~pass~ indicate the direct location”
in my case
cppcommand was not aware oftesseractheaders. You can see cpp-includes with commandcpp -v.Solution for me was to make tesseract-includes availble by defining
export CPATH="/usr/local/Cellar/tesseract/4.0.0_1/include"and then run the build command.About headers: https://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art026
It worked for me, Thanks
I passed the direct location from tesseract/baseapi.h file. for me: “/usr/local/Cellar/tesseract/4.0.0_1/include/tesseract/baseapi.h”
Afterwards I was able to compile and install opencv.
brew uninstall tesseractThis worked for meThanks for pointing me into the right direction. I have to admit that my setup was kind of messed up. Probably due to an old MacPort install, osx upgrading and naive experimenting some time ago. Had to completely remove MacPort and clean up the all Homebrew installations. Here
brew doctorcame in quite handy.@justadudewhohacks sorry that I took up your time. I really appreciate the work you put into into this!