Compiling OpenCV 2.4 on RHEL/CentOS 5

OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision.

At present, prebuilt binaries/packages are not available for OpenCV on Centos/RHEL 5. Here are the notes from my attempts to get it compiled.

Please make sure you have latest cmake installed from http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz

To Install OpenCV python modules, you will need python-numpy modules to be installed.

easy_install numpy

Then compile OpenCV using(assuming, your latest python is installed in /usr/local/python-2.7):

cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_EXAMPLES=ON -DBUILD_NEW_PYTHON_SUPPORT=ON -DINSTALL_PYTHON_EXAMPLES=ON -DPYTHON_EXECUTABLE=/usr/local/python-2.7/bin/python -DPYTHON_INCLUDE_DIR=/usr/local/python-2.7/include -DPYTHON_LIBRARY=/usr/local/python-2.7/lib/libpython2.7.so -DPYTHON_NUMPY_INCLUDE_DIR=/usr/local/python-2.7/lib/python2.7/site-packages/numpy/core/include/ -DPYTHON_PACKAGES_PATH=/usr/local/python-2.7/lib/python2.7/site-packages/

Using BUILD_NEW_PYTHON_SUPPORT fixes the issue seen below:

CMake Warning:
   Manually-specified variables were not used by the project:

   BUILD_PYTHON_SUPPORT

If you get the following Error:

CMake Error at apps/haartraining/CMakeLists.txt:39 (set_target_properties):
set_target_properties called with incorrect number of arguments.

CMake Error at apps/traincascade/CMakeLists.txt:29 (set_target_properties):
set_target_properties called with incorrect number of arguments.

it can be fixed in both files by enclosing ${EXECUTABLE_OUTPUT_PATH} with double quotes (“${EXECUTABLE_OUTPUT_PATH}”)

Then, run make

make

Now, make will throw an error when it tries to compile freak.cpp. To get this compiled, compile it manually (without using any optimization )

cd /home/ram/OpenCV-2.4.3/modules/features2d ; 
/usr/bin/c++ -Dopencv_features2d_EXPORTS -DHAVE_CVCONFIG_H \ 
-DCVAPI_EXPORTS -W -Wall -Wformat -Wundef -Winit-self \
-Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option \
-Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 \
-ffunction-sections -DNDEBUG -DNDEBUG -fPIC \
-I/home/ram/OpenCV-2.4.3/modules/features2d/perf -I/home/ram/OpenCV-2.4.3/modules/features2d/include \
-I/home/ram/OpenCV-2.4.3/modules/highgui/include -I/home/ram/OpenCV-2.4.3/modules/flann/include \
-I/home/ram/OpenCV-2.4.3/modules/imgproc/include -I/home/ram/OpenCV-2.4.3/modules/core/include \
-I/home/ram/OpenCV-2.4.3/modules/ts/include -I/home/ram/OpenCV-2.4.3/modules/features2d \
-I/home/ram/OpenCV-2.4.3/modules/features2d/src -I/home/ram/OpenCV-2.4.3/modules/features2d/test \
-I/home/ram/OpenCV-2.4.3 -o CMakeFiles/opencv_features2d.dir/src/freak.cpp.o \
-c /home/ram/OpenCV-2.4.3/modules/features2d/src/freak.cpp

This should build freak manually, so make will not bother recompiling it anymore. Continue build:

cd /home/ram/OpenCV-2.4.3/
make
make install

This completes OpenCV installation. To build the samples:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
cd /home/ram/OpenCV-2.4.3/samples/c
chmod +x build_all.sh
./build_all.sh

5 thoughts on “Compiling OpenCV 2.4 on RHEL/CentOS 5”

  1. There are two errors in this posted approach:
    1. The include path has to include the root installation folder to include cvconfig.h.
    2. The path “CMakeFiles/opencv_features2d.dir/src/” doesn’t exist. It has to be modules/features2d/CMakeFiles/freak.cpp.o from the root path.

  2. Weird. The steps mentioned here are from my notes I copied from, when I did the installation. Let me redo and see if I encounter the issues you have mentioned.

  3. Sorry to correct previous post:
    The include path has to include the root installation folder to include cvconfig.h.
    e.g., -I/opencv-2.4.3

  4. Thanks for the tutorial. The installation finished but when I try to import cv2 in python I get the following error:
    ImportError: /opt/python2.7.5/lib/python2.7/site-packages/cv2.so: undefined symbol: Py_InitModule4

    Any ideas?

  5. Run:
    ldd /opt/python2.7.5/lib/python2.7/site-packages/cv2.so and paste the output please

    I think the path somewhere is not set right

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>