Install Opencv 2.3.1 on Ubuntu 12.04 Precise Pangolin

Here are instructions for installation of Opencv 2.3.1 on Ubuntu 12.04 Precise Pangolin. For opencv installation we need FFmpeg, x264, v4l and their dependencies. It is a bit longer process as compared to windows installations. Step by step process is shown below.

1. Install dependencies for FFmpeg and x264
Enter following lines in terminal to check and install dependencies.
  
sudo apt-get install build-essential checkinstall git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev
 


2. Install Gstreamer by entering following lines in terminal
sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg
 


3. Download recent version (0.8+)of FFmpeg from https://github.com/FFmpeg/FFmpeg extract it and go to the directory. Now configure and install FFmpeg by entering following commons one by one.

./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab
make
sudo make install
 


4. Install recent version of x264 from ftp://ftp.videolan.org/pub/videolan/x264/snapshots/ extract it and go to the directory. Now configure and install x264 by entering following commons one by one.

./configure --enable-static
make
sudo make install
 


5. Download video for linux v4l libs from http://www.linuxtv.org/downloads/v4l-utils/ extract it and go to the directory. Install v4l using following command.
make
sudo make install
 


6. Install gtk libs using apt-get
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
 


7. Install libjpeg using following command
sudo apt-get install libjpeg62 libjpeg62-dev
 


8. Now our dependencies are complete. We can install Opencv now. Download Opencv from http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/ Extract it and go to the directory. Enter following command to configure and install Opencv
mkdir build
cd build
cmake ..
make
sudo make install
 


We are done with installing Opencv on ubuntu 12.04 Precise Pangolin. In order to set path open /etc/bash.bashrc using your favorite text editor and add following lines
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
 


Restart your system and you are ready to use awesome Opencv!

Accessing webcam using javacv

Configuration steps for javacv on Eclipse running on windows 7 can be found in the link below.
http://opencvlover.blogspot.in/2012/04/javacv-setup-with-eclipse-on-windows-7.html

Instructions for importing video in javacv can be found in link below
http://opencvlover.blogspot.in/2012/05/importing-video-using-javacv.html

Accessing webcam using javacv is pretty much similar to importing video. We just have to set null parameter  while specifying video path in deceleration of OpenCVFramegrabber. Also we have to flip output from webcam horizontally to get it like mirror.

Following is the code snippet which uses OpenCVFrameGrabber to capture from webcam.


Importing video using Javacv

Configuration steps for javacv on Eclipse running on windows 7 can be found in the link below.
http://opencvlover.blogspot.in/2012/04/javacv-setup-with-eclipse-on-windows-7.html

In this post we will see how to import video in javacv for processing. Opencv uses CvCapture function for importing video. Javacv uses FrameGrabber class for grabbing video. Framegrabber can be used with 2 methods for importing video OpenCVFrameGrabber and FFMpegFramegrabber.
Following is the code snippet which uses OpenCVFrameGrabber to capture video file "Video.mp4".


If openCVFrameGrabber shows blank output or some error then try using FFMpegGrabber instead.

JavaCV setup with Eclipse on Windows 7

Update: These instructions are also applicable for 2.4+ version of opencv and javacv.

I was looking for image processing library for Java. My search stopped at JavaCV. JavaCV provides wrappers for OpenCV. so you can directly use OpenCV functions in Java. JavaCV also provides hardware accelerated full screen Image display with CanvasFrame and GLCanvasFrame.

JavaCV provides jar files which can be used with OpenCV installation. Following steps can be followed to setup JavaCV with Eclipse on Windows 7.

1.Install Java Development Kit (JDK) from the link below. Make sure to install 32bit or 64 bit as per your processor.

http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html

2. Install Microsoft Visual C++ redistributable package

For 32 bit: http://www.microsoft.com/download/en/details.aspx?id=5555
For 64 bit: http://www.microsoft.com/download/en/details.aspx?id=14632

3. Download OpenCV super-pack from Sourceforge and extract it in you C:\Opencv

http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3.1/

4. Set OpenCV .dll in systems path so that JavaCV can access it.

Go to Control Panel > System Security > System > Advanced System Settings > Environment Variables
In System variable select path and click on Edit. Now add following address in Variable address. I have extracted opencv package in C:\ directory. If you have installed at different location please update address accordingly.

For OpenCV 2.4.2 and earlier version 

For 32 bit:
C:\opencv\build\x86\vc10\bin;C:\opencv\build\common\tbb\ia32\vc10\

For 64 bit:
C:\opencv\build\x64\vc10\bin;C:\opencv\build\common\tbb\intel64\vc10\


For OpenCV 2.4.3 and later version 

For 32 bit:
C:\opencv\build\x86\vc10\bin

For 64 bit:
C:\opencv\build\x64\vc10\bin



Once this is done, the most important step is to Restart Windows.

5. Download JavaCV- bin from link below and extract it.

http://code.google.com/p/javacv/downloads/list

6. Create New Java Project 'demo' in Eclipse. 

Once created, go to Project > Properties > Java Build Path > Libraries > Add External JARs .
Go to your JavaCV Extracted folder and add all jar files. It should look like the pic below



7. Now create demo.java in src folder of the project. 

Paste following code and run the project.Put your image in project folder. In my case it is 'img1.png'


Result will look like this  



Displaying image in grayscale

OpenCV provides easy way to load image as IplImage in 3 band format, grayscale format or load image as it is(in its original format). Image loading function loads image from file as IplImage by taking 2 arguments.

  1. Image file name e.g. 'img1.png' in my case.
  2. Color code as integer.
Here is my img1.png file in original format.

We can provide 3 types of color code integers
  • 'CV_LOAD_IMAGE_COLOR'
    This will load image in 3channel color image i.e. RGB image.
    we will use following code and see what will be the result


    The result will be as following image.
    The image is not actually changed as we have given RGB Image and output is also displaying RGB image.

  • 'CV_LOAD_IMAGE_GRYASCALE'
    This will load image in gray scale format.
    we will use following code and see what will be the result


    The result will be as following image.
    The out put image is gray scale version of input image.

  • 'CV_LOAD_IMAGE_UNCHANGED'
    This will load image as it is.
    We can use this format if we want to load image in its original format.

Open-CV with Python in Ubuntu 11.10

Installing Open-CV python library in Ubuntu 11.10 is pretty much easy. You just have to install 'python-opencv' library and you are ready to go. Just copy and run following command to install 'python-opencv' library. You need to have superuser permission.

sudo apt-get install python-opencv

In order to test if it is installed properly, we will run a sample code 'test.py'. This code will open and display an image using opencv. Take any .jpg file and put it in a same folder as 'test.py'.
Now open 'test.py' in emacs or gedit or any of your favorite text editor and write the following code.
import cv
image = cv.LoadImageM("image_file_name.jpg")
cv.ShowImage("Title", image)
cv.WaitKey()

Now open terminal and go to the folder containing 'test.py'. Type the following command and you will see the image in a window.
python test.py

This window with image will disappear upon keyboard input. Thats it! you have successfully installed opencv libraries for python.