INTRODUCTION:
OpenCV (open source computer vision) is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, C, Python and Java interfaces and supports Ubuntu Linux. OpenCV was designed for computational efficiency and with a strong focus on real-time applications.
OpenCV is the most popular and advanced code library for Computer Vision related applications today, spanning from many very basic tasks (capture and pre-processing of p_w_picpath data) to high-level algorithms (feature extraction, motion tracking, machine learning). It is free software and provides a rich API in C, C++, Java and Python. Other wrappers are available. The library itself is platform-independent and often used for real-time p_w_picpath processing and computer vision.
INSTALLATIONMany people are having problem with installing OpenCV even from Ubuntu Software Centre. Here a simple .sh script file get all dependancy files from internet and compile the source finally install opencv on your system. So that users can easily write their CV files from C,C++, and Python.
Step1:
Download the latest opencv.sh from https://github.com/jayrambhia/Install-OpenCV/blob/master/Ubuntu/or Copy the following script to gedit and save as opencv.sh
version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9])+' | cut -c2-)" echo "Installing OpenCV" $version mkdir OpenCV cd OpenCV echo "Removing any pre-installed ffmpeg and x264" sudo apt-get -qq remove ffmpeg x264 libx264-dev echo "Installing Dependenices" sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg echo "Downloading OpenCV" $version wget -O OpenCV-$version.tar.gz http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/opencv-"$version".tar.gz/download echo "Installing OpenCV" $version tar -xvf OpenCV-$version.tar.gz cd opencv-$version mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON .. make -j 4 sudo make install sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig echo "OpenCV" $version "ready to be used"
Step 2
Open terminal. $ chmod +x opencv.sh $ ./opencv.sh
This will complete opencv installation
Running OpenCVPython
Loading an p_w_picpath in Python
1 fromcv2.cvimport * 2 3 img = LoadImage("/home/USER/Pictures/python.jpg") 4 NamedWindow("opencv") 5 ShowImage("opencv",img) 6 WaitKey(0) 7
$ python filename.py
in C
=== Loading an p_w_picpath file in C ==
#include #include<opencv2/highgui/highgui.hpp> int main() { IplImage* img = cvLoadImage("/home/USER/Pictures/python.jpg",CV_LOAD_IMAGE_COLOR); cvNamedWindow("opencvtest",CV_WINDOW_AUTOSIZE); cvShowImage("opencvtest",img); cvWaitKey(0); cvReleaseImage(&img); return 0; }
To compile C program, Let’s assume the file is opencvtest.c
$ gcc -ggdb pkg-config --cflags opencv -o basename opencvtest.c .c opencvtest.c pkg-config --libs opencv$ ./opencvtest
In C++
=== Loading an p_w_picpath file in C++ ==
#include<opencv2/highgui/highgui.hpp> using namespace cv; int main() { Mat img = imread("/home/USER/Pictures/python.jpg",CV_LOAD_IMAGE_COLOR); imshow("opencvtest",img); waitKey(0); return 0; }
to compile in C++ $ g++ -ggdb pkg-config --cflags opencv -o basename opencvtest.cpp .cpp opencvtest.cpp pkg-config --libs opencv$ ./opencvtest
Note: Always include OpenCV header files in C and C++ as
#include "opencv2/core/core_c.h" #include "opencv2/core/core.hpp" #include "opencv2/flann/miniflann.hpp" #include "opencv2/imgproc/imgproc_c.h" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/video/video.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/objdetect/objdetect.hpp" #include "opencv2/calib3d/calib3d.hpp" #include "opencv2/ml/ml.hpp" #include "opencv2/highgui/highgui_c.h" #include "opencv2/highgui/highgui.hpp" #include "opencv2/contrib/contrib.hpp"
A bash script to compile opencv programs.Making a Bash Script to Compile OpenCV:
It’s kind of boring typing all this stuff. So, A bash file to compile OpenCV programs. Name it .compile_opencv.sh and keep it in your home directory.
echo "compiling $1" if [[ $1 == *.c ]] then gcc -ggdb `pkg-config --cflags opencv` -o `basename $1 .c` $1 `pkg-config --libs opencv`; elif [[ $1 == *.cpp ]] then g++ -ggdb `pkg-config --cflags opencv` -o `basename $1 .cpp` $1 `pkg-config --libs opencv`; else echo "Please compile only .c or .cpp files" fi echo "Output file => ${1%.*}
Add an alias in .bashrc or .bash_aliases
alias opencv="~/.compile_opencv.sh"
$ opencv opencvtest.c $ ./opencvtest