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)

Most upvoted comments

@GiulioPettenuzzo Let’s say you receive output like this from your shell:

In file included from ~/opencv_contrib/modules/text/src/erfilter.cpp:43:
~/opencv_contrib/modules/text/src/precomp.hpp:54:10: fatal error: 
      'tesseract/baseapi.h' file not found
#include <tesseract/baseapi.h>
         ^~~~~~~~~~~~~~~~~~~~~

The non-ideal, but definitely workable solution is to:

  1. Find your favorite text editor
  2. Use text editor to open for modification the header file ~/opencv_contrib/modules/text/src/precomp.hpp
  3. Change lines like #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 cpp command was not aware of tesseract headers. You can see cpp-includes with command cpp -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

in my case cpp command was not aware of tesseract headers. You can see cpp-includes with command cpp -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 tesseract This worked for me

Thanks 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 doctor came in quite handy.

@justadudewhohacks sorry that I took up your time. I really appreciate the work you put into into this!