Showing posts with label OpenCV. Show all posts
Showing posts with label OpenCV. Show all posts

Tuesday, February 16, 2010

OpenCV 2.0, Windows and Eclipse Setup Instructions

This blog involves the latest release of OpenCV 2.0.  I have concentrated most of my time into developing OpenCV applications in the Linux environment.  This time I wanted to learn how to set it up in Windows with the latest stable release of OpenCV.

Documentation:

This following document involves the setup of Eclipse for OpenCV2.0 in Windows, the installation of all necessary programs to be installed to run OpenCV2.0 in Eclipse, and how to add an existing project.  This document was originally designed for my Professor's Digital Image Processing class at the UNH ECE Department.  The basic setup procedure was created by Jon Carrier over at Carrier Frequency.  This document incorporates images for ease of understanding.

Document: OpenCV2.0 Project Setup in Eclipse.pdf

Sample Code:

This sample code is for someone that wants to get into Image Processing with a minimal setup.  Students of Image Processing classes are encouraged to utilize this code.  I ask that you do not remove the citation information in order to preserve the originality of the work.

What it is:
   This is code that can be imported into Eclipse and run and modified without much effort.

What is does:
   The code opens a camera capture and allows the user to press certain keyboard numbers to toggle between algorithms.  By default the program has 5 settings.
  1. Press the number 1 button to run the Canny edge detector with a specified threshold
  2. Press the number 2 button to run the Canny edge detector with a threshold value of 1
  3. Press the number 3 button to run an algorithm that manipulates at the pixel level to remove the green channel.
  4. Press the ESC key to exit the program
  5. Press any other key to undo all editing settings (default case)
What to do with it:
   Edit the code and make it your own.  For users that do not know much about OpenCV and/or C++ programming the code is very simple and there are great instructions included.  

How to add your own code:
   In the Laboratory.cpp file add a new case to the switch statement.  Just increment the case number and the ASCII value for that value is the button you press to call your function.  Then edit VisionJobs.h to declare a new function.  Then edit VisionJobs.cpp and add your new function there and modify the frames as necessary.

Code:
   Ok lets get to it and let you download the code.

Download location is here (zip file containing all .c and .h files and Eclipse .cproject and .project files)

Tuesday, January 5, 2010

OpenCV libcv.so.2.0 error

Sometimes after a fresh install of OpenCV in a fresh install of Linux you may come across the error:

error while loading shared libraries: libcv.so.2.0: cannot open shared object file: No such file or directory


If you do then follow the instructions provided by an OpenCV thread on nabble.com. Click here

Tuesday, September 29, 2009

Eclipse - OpenCV Project Setup

After you install OpenCV you will most likely want to use a programming IDE to write your code. In this case I am assuming you have chosen the Eclipse C++ IDE. To install this go here to download and untar the program where you will want it to reside on your machine.  Then run the program (no install necessary... it's written in java).

If you have installed the OpenCV library on your machine to /usr/local then you can follow this setup. Otherwise you will have to change how you link to OpenCV appropriately.  This section also relates to the setup of gtkmm and fftw.  If you do not want to use them, remove their sections.

1) Right click on your project and go to Properties
2) Go to the C/C++ Build section and then Settings
3) Under GCC C++ Compiler,  click on Directories
4) Add the following paths under Include Paths

/usr/local/include/opencv
/usr/lib/gtkmm-2.4
/usr/include/gtkmm-2.4


5) Under GCC C++ Compiler,  click on Optimization
6) Add the following under Other optimization flags

-ggdb `pkg-config opencv --cflags --libs` `pkg-config gtkmm-2.4 --cflags --libs`


7) Under GCC C++ Linker,  click on Libraries
8) Add the following under Libraries

cv
gtkmm-2.4
highgui
fftw3
9) Add the following under Library search path


/usr/local/lib
/usr/lib

Wednesday, August 26, 2009

Ubuntu OpenCV FFMPEG error

If you are in Ubuntu 9.04 and attempting to write a video using OpenCV you may encounter an error such as:

OpenCV Error: Bad argument (codec not found) in CvVideoWriter_FFMPEG::open

The only solution that I have found is to install the following
sudo apt-get install libavcodec-unstripped-52

It seems to remove a bunch of packages but everything I do (reading/writing videos) seems to be working. So proceed with caution on installing this, but it may fix what ails you.

Thursday, August 13, 2009

How to download & compile the latest OpenCV

Once you have your environment set up you will be able to download and compile OpenCV to your Linux environment easily. Some Linux distributions are easier than other to setup. Sabayon is one such distro that comes with many of the necessary packages already installed.

Execute the following commands:
  1. mkdir opencv
  2. svn co https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk opencv
  3. cd opencv/opencv
  4. mkdir release
  5. cd release
  6. sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON ../
Now make sure everything worked and was found. If you get errors you need to fix them now or else you will have issues completing a successful install.

Execute the following:

  1. sudo make
  2. sudo make install

If everything goes as planned OpenCV should compile successfully (100% during the make). If not check your libraries and if all else fails try getting the code from the SVN again.

There it is, you have installed OpenCV from source!

Update #1:
   If you receive the error from cxcorr.hpp indicating that ptrdiff_t does not name a type, please add this line of code to cxcorr.hpp (as indicated by stackoverflow.com):

  1. #include <stddef.h>

Setting up Ubuntu for OpenCV

This article relates how to setup a fresh Ubuntu (9.04 - Jaunty Jackalope) so you can download the latest OpenCV from the repository and then compile it from scratch. Downloading and compiling will be a separate article.

First install some packages using the following commands:
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install mplayer
sudo apt-get install subversion
sudo apt-get install ffmpeg
sudo apt-get install swig
sudo apt-get install python-all
sudo apt-get install python-all-dev
Second install some libraries using the following commands:
sudo apt-get install libxine1
sudo apt-get install libfftw3-3
sudo apt-get install libfftw3-3-dev
sudo apt-get install libfftw3-dev
sudo apt-get install libvorbis-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavdevice-dev
sudo apt-get install libavfilter-dev
sudo apt-get install libavformat-dev
sudo apt-get install libavutil-dev
sudo apt-get install libmad0
sudo apt-get install libmad0-dev (maybe not necessary)
sudo apt-get install libpostproc-dev
sudo apt-get install libswscale-dev
sudo apt-get install libxine1-ffmpeg
sudo apt-get install libjasper-dev
sudo apt-get install libtiff4-dev
sudo apt-get install libv4l-dev
sudo apt-get install libslang2-dev
sudo apt-get install libxine-dev
sudo apt-get install libdc1394-22-dev
sudo apt-get install libgstreamer0.10-dev
sudo apt-get install libgtk2.0-dev
Now go into Add/Remove Programs
  1. Search for java runtime
  2. Install Sun Java 6 Runtime
*Note: You will want to select All available applications under Show:
Now install unicap

Follow the directions here, then run the following commands:
sudo apt-get install libunicap2
sudo apt-get install libunicap-dev
sudo apt-get install libucil2
sudo apt-get install libucil-dev
sudo apt-get install libunicapgtk2
sudo apt-get install libunicapgtk-dev

* You can also dowloand the tar.gz and compile and make that by hand

* If you are having trouble writing to files with OpenCV after you have installed all the above, please read this link for the fix.