**Installing OpenCV4 on Ubuntu 18 and adding it to ROS**\\ \\ **Author:** Leonardo Georgescu, Dongbin Kim \\ **Email:** georgl3@unlv.nevada.edu\\ **Date:** Last Edited 07-02-2021 by Dongbin Kim\\ **Keywords:** Dynamixel, Gantry, Ubuntu 18, OpenCV, ROS \\ \\ This tutorial shows how to install OpenCV in Ubuntu 18. The tutorial is based on this page which is in Korean [[https://webnautes.tistory.com/1186| Opencv Update]].\\ \\ **Installation Guide** \\ 1. Check to see if OpenCV is already installed: dasl@dasl-XPS-8900:~$ pkg-config --modversion opencv 2. If you see it already installed delete the previous version by executing the following commands: dasl@dasl-XPS-8900:~$ sudo apt-get purge libopencv* python-opencv dasl@dasl-XPS-8900:~$ sudo apt-get autoremove 3. Delete all the existing OpenCV libraries: dasl@dasl-XPS-8900:~$ sudo find /usr/local/ -name "*opencv*" -exec rm {} \; 4. Update and upgrade packages on Ubuntu: dasl@dasl-XPS-8900:~$ sudo apt-get update dasl@dasl-XPS-8900:~$ sudo apt-get upgrade 5. Install build-essential and cmake packages: dasl@dasl-XPS-8900:~$ sudo apt-get install build-essential cmake 6. Install pkg-config: dasl@dasl-XPS-8900:~$ sudo apt-get install pkg-config 7. Install packages for recording images in a certain format: dasl@dasl-XPS-8900:~$ sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev dasl@dasl-XPS-8900:~$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev 8. Install drivers to capture real-time video capture on Linux: dasl@dasl-XPS-8900:~$ sudo apt-get install libv4l-dev v4l-utils 9. Install GStreamer: dasl@dasl-XPS-8900:~$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 10. Use GUI to show images: dasl@dasl-XPS-8900:~$ sudo apt-get install libgtk2.0-dev 11. Install OpenGL libraries: dasl@dasl-XPS-8900:~$ sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev 12. Install libraries to optimize OpenCV: dasl@dasl-XPS-8900:~$ sudo apt-get install libatlas-base-dev gfortran libeigen3-dev 13. Install Python dev packages: dasl@dasl-XPS-8900:~$ sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy 14. Create OpenCV directory then move on: dasl@dasl-XPS-8900:~$ mkdir opencv dasl@dasl-XPS-8900:~$ cd opencv dasl@dasl-XPS-8900:~/opencv$ 15. Download and unzip OpenCV 4.2: dasl@dasl-XPS-8900:~/opencv$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip dasl@dasl-XPS-8900:~/opencv$ unzip opencv.zip 16. Download and unzip OpenCV source code: dasl@dasl-XPS-8900:~/opencv$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip dasl@dasl-XPS-8900:~/opencv$ unzip opencv_contrib.zip 17. Version "opencv-4.2.0" should show when checking to see it was installed correctly: dasl@dasl-XPS-8900:~/opencv$ ls -d */ 18. Create a build directory which takes care of compilation: dasl@dasl-XPS-8900:~/opencv$ cd opencv-4.0.1/ dasl@dasl-XPS-8900:~/opencv/opencv-4.2.0$ mkdir build dasl@dasl-XPS-8900:~/opencv/opencv-4.2.0$ cd build dasl@dasl-XPS-8900:~/opencv/opencv-4.2.0/build$ 19. Utilize 'cmake' to configure OpenCV complie settings dasl@dasl-XPS-8900:~/opencv/opencv-4.2.0/build$ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D WITH_TBB=OFF \ -D WITH_IPP=OFF \ -D WITH_1394=OFF \ -D BUILD_WITH_DEBUG_INFO=OFF \ -D BUILD_DOCS=OFF \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D BUILD_EXAMPLES=OFF \ -D BUILD_TESTS=OFF \ -D BUILD_PERF_TESTS=OFF \ -D WITH_QT=OFF \ -D WITH_GTK=ON \ -D WITH_OPENGL=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.2.0/modules \ -D WITH_V4L=ON \ -D WITH_FFMPEG=ON \ -D WITH_XINE=ON \ -D BUILD_NEW_PYTHON_SUPPORT=ON \ -D OPENCV_GENERATE_PKGCONFIG=ON ../ if you see the message like below, you successfully finished configuration - Configuring done - Generating done - Build files have been written to: /home/webnautes/opencv/opencv-4.2.0/build You may have hard time doing the job here, if you are in trouble, please let us know, or look at the link the top of the tutorial. Everything is explained in Korean, but you will understand if you run "Translate this page" in Google Chrome 20. Installation should be successful. Then, check how many cores you have available on the computer: dasl@dasl-XPS-8900:~$ lscpu 21. If you have more than 4 cores, then use the following command: dasl@dasl-XPS-8900:~/opencv/opencv-4.2.0/build$ time make -j4 22. Install Output: dasl@dasl-XPS-8900:~/opencv/opencv-4.2.0/build$ sudo make install 23. Check that "/usr/local/lib" is an output. If it's an output then work is all done. dasl@dasl-XPS-8900:~/opencv/opencv-4.2.0/build$ cat /etc/ld.so.conf.d/* 24. Install CV Bridge which works between ROS and CV. dasl@dasl-XPS-8900:~$ sudo apt-get install ros-melodic-cv-bridge 25. Install cheese to verity in ubuntu if your camera works. Running the commands below should allow you to view camera feedback. If it does not work, then it's an issue related to the drivers of your camera which need to be installed. dasl@dasl-XPS-8900:~$ sudo apt-get install cheese dasl@dasl-XPS-8900:~$ cheese 26. To view image on camera in ros: dasl@dasl-XPS-8900:~$ sudo apt-get install ros-melodic-image-view 27. This will be used to publish the camera feedback. To be able to subscribe we must be able to publish the data. Instill the video stream package first: dasl@dasl-XPS-8900:~$ sudo apt-get install ros-melodic-video-stream-opencv 28. Sometimes the camera feedback is too bright or if you want to change the values manually install the software below and run it. dasl@dasl-XPS-8900:~$ sudo apt-get install guvcview dasl@dasl-XPS-8900:~$ guvcview 29. Once the camera is calibrated, you can check 26. **Adding OpenCV to ROS** \\