Working With OpenCV and Intel Image Processing Libraries - Processing Image Data Tools
Working With OpenCV and Intel Image Processing Libraries - Processing Image Data Tools
Faraón Llorens, Francisco José Mora , Mar Pujol, Ramón Rizo and Carlos Villagrá.
We will provide an overview of Intel OpenCV and Image http://groups.yahoo.com/ and then can subscribe by sending
Processing Libraries. We present an application of real-time email to [email protected].
gesture recognition using the libraries (segmenting a Intel has developed a uniquely decentralized research model
foreground object, creating Motion History Image (MHI), with over 80 labs situated around the world. The bulk of the
updating the intensity gradients, and recovering directional OpenCV software team resides Intel's Software Development
motion information). Center in Nihzniy Novgorod, Russia. Established in 1999, the
Some times most companies spent a lot of time and money center currently employees over 100 computer research
implementing those well-known techniques. OpenCV and scientists and engineers working in areas such as computer
IPL implement a huge amount of standard and advanced graphics, vision, media, Bayesian networks, compilers and tools
image processing techniques. With OpenCV we now have research. The support and new versions of the library are
access to a well implemented version that is fast and guaranteed.
reliable. OpenCV currently is supported to run on Windows and Linux
operating systems. We can use the library with programming
languages, for example Visual Basic or Java, and applications
like MathLab.
1. INTRODUCTION There are other libraries developed for the Intel group. For
example the Signal Processing Library is a library for work
OpenCV is computer-vision library for extracting and with audio signal, and Intel Vtune Performance analycer to
processing meaningful data from images. This library needs calculate the time-codes.
other Library, the Intel Image Processing Library. IPL provides IPL and OpenCV reference manuals detailed describe
a set of low-level image manipulation and OpenCV structure, operation ands functions of the libraries.
implements techniques and functions in the areas of
object/human/face segmentation, detection, recognition, and
tracking, as well as camera calibration, stereovision, and 2. INTEL IMAGE PROCESSING LIBRARY V2.5
2D/3D shape reconstruction.
OpenCV is an open-source release that includes C source The Intel Image Processing Library provides a set of low-level
code for all of the library’s functionality, it gives us confidence image manipulation functions in standard DLLs and static
in the code and we have know we can make local libraries form. The functions are optimized for Intel
modifications if necessary. Architecture processors, and are particularly effective at taking
Developed by the Intel research group, OpenCV is freely advantage of MMX™ technology, the Streaming SIMD
available at www.intel.com/research/mrl/research/opencv/ and Extensions (SSE) and SSE-2.. Currently, versions have been
has royalty free redistribution license. Anyone interested in developed for the Intel486™ and compatible processors, the
joining the user group needs to register with Yahoo groups at Pentium® processor, the Pentium Pro processor, the Pentium
processor with MMX technology, the Pentium processor, the
3. THE OPENCV LIBRARY
//meanI^2
iplMultiplySFP(IstdFP, IstdFP.
(float)1.0/i); IplImage* ImeanSqr =
iplCloneImage(Imean);
iplSquare(ImeanSqr, ImeanSqr);
//IstdFP = sqrt(Ivar)
cvbSqrt((const
float*)IstdFP->imageData,
(float*)IstdFP->imageData, len);
//Ii Video input image BGR cvCalcMotionGradient(IrhiIm, Imask,
//Im Mean image of background BGR Iorient, 3, MAX_TIME_DELTA,MIN
//Is Standard deviation of background from TIME_DELTA )
mean BGR
//Io Output image -- Grayscale //CALCULATE THE MOTION ORIENTATION
//Iot Temporary output image -- Grayscale globalDir = cvCalcGlobalOrientation (
//Itl,It2 Temporary images of same size, Iorient, Imask, ImhiIm,
depth and number of channels timestamp,MHI_DURATION):
BGR
//numIterations Number of dialations to globalDir = 360.0 - globalDir:
preform on foreground //Circularly rotate angle since TL
void backsubCVL(IplImage *Ii, IplImage *Im. origin
IplImage *Is, IplImage *Io, rather //than BL default
IplImage *Iot, IplImage *Itl, IplImage
*It2, int numIterations) Listing 3.
{ Update tMHi, Calculate the Motion Gradient and global motion
//Get 'Ii-Im orientation code.
iplSubtract(Ii,Im,Itl);
iplSubtract(Im,Ii,It2);
iplAdd(Itl,It2,Itl);
6. CONCLUSIONS