
It's not as good as it used to be, but it's not bad, I think.
##################################
## <OpenCL_INCLUDE_DIR-NOTFOUND/CL/cl.h> => OpenCL_INCLUDE_DIR-NOTFOUND/CL/cl.h: No such file or directory
##################################
If fixing videoio.h, png.h and FFMPEG then it will be fixed
##################################
## videoio.h DBG (videodev2.h comes from kernel-headers)
##################################
$ cd /usr/include/sys/
$ sudo ln -s /usr/include/linux/videodev2.h videoio.h
##################################
## make sure the OPENCV_EXTRA_MODULES_PATH correct path for cl.h
##################################
-D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv_build/opencv_contrib/modules \
##################################
## png.h DBG
##################################
# rpm -ql libpng-devel | grep png.h
/usr/include/libpng16/png.h
/usr/include/png.h
# mkdir /usr/include/libpng
# cd /usr/include/libpng
# ln -s ../png*.h .
## videoio.h DBG
$ yum whatprovides videoio.h
$ yum whatprovides avformat.h
##################################
## FFMPEG Issue
##################################
## CentOS 7 Install from Source)
$ sudo yum install epel-release
$ sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
$ sudo yum install ffmpeg ffmpeg-devel
##################################
##CentOS8 (RPM Download if you want rpm)
# https://pkgs.dyn.su/el8/multimedia/x86_64/ffmpeg-4.2.2-2.el8.x86_64.rpm
# https://pkgs.dyn.su/el8/multimedia/x86_64/ffmpeg-libs-4.2.2-2.el8.x86_64.rpm
# https://pkgs.dyn.su/el8/multimedia/x86_64/ffmpeg-devel-4.2.2-2.el8.x86_64.rpm
# https://pkgs.dyn.su/el8/multimedia/SRPMS/ffmpeg-4.2.2-2.el8.src.rpm
##or CentOS8 (Install)
## FFMPEG Requirements on CentOS8
$ sudo yum install --enablerepo=PowerTools SDL2 SDL2-devel
## Install FFMPEG
$ sudo yum install --enablerepo=raven-multimedia https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-1.el8.noarch.rpm
# install --enablerepo=raven-multimedia ffmpeg-devel ffmpeg
##################################
## or Install from source
$ git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
$ cd ffmpeg
$ ./configure
## or
$ ./configure --disable-x86asm # Disable nasm dependency
$ make
$ sudo make install
##################################
## Base requirements
##################################
## CentOS 7
$ sudo yum install cmake cmake3 gcc gcc-c++ qt5-qtbase-devel libpng-devel gtk2-devel jasper-devel openxr-devel libwebp-devel libjpeg-turbo-devel libtiff-devel tbb-devel libv41-devel eigen3-devel freeglut-devel mesa-libGL mesa-libGL-devel boost boost-thread boost-devel gstreamer1-plugins-base libpng-devel libjpeg-turbo-devel jasper-devel openexr-devel libtiff-devel libwebp-devel python-devel python2-numpy numpy python34-numpy libdc1394-devel
##################################
## CentOS8
$ sudo yum install cmake cmake3 gcc gcc-c++ qt5-qtbase-devel libpng-devel gtk2-devel libwebp-devel libjpeg-turbo-devel libtiff-devel tbb-devel freeglut-devel mesa-libGL mesa-libGL-devel boost boost-thread boost-devel gstreamer1-plugins-base libpng-devel libjpeg-turbo-devel libtiff-devel libwebp-devel python2-numpy
##################################
## Install OpenCV
##################################
$ cd /tmp
$ mkdir opencv_build
$ cd opencv_build
$ git clone https://github.com/opencv/opencv.git
$ git clone https://github.com/opencv/opencv_contrib.git
$ cd opencv
$ mkdir build
$ cd build
$ cmake3 -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv_build/opencv_contrib/modules \
-D BUILD_OPENCV_PYTHON2=ON \
-D BUILD_EXAMPLES=ON ..
$ make -j8
$ sudo make install
Check OpenCV version
$ python3
>>> import cv2
>>> cv2.__version__
'4.4.0-dev'
>>> (major, minor, _) = cv2.__version__.split(".")
>>> major
'4'
>>> minor
'4'
>>> _
'0-dev'