Skip to content

Commit

Permalink
Imported Upstream version 0.9.7
Browse files Browse the repository at this point in the history
  • Loading branch information
Barak A. Pearlmutter committed Jun 6, 2011
1 parent 1adae66 commit 4236e61
Show file tree
Hide file tree
Showing 504 changed files with 602,918 additions and 509,120 deletions.
16 changes: 8 additions & 8 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
OpenCV authors and major code algorithm/code contributors.
(if you noticed that some names are missing, please mail to vadim.pisarevsky@intel.com)
---------------------------------------------------------------------------------------

Name Company (by the moment Remarks
of contribution)

Asbach, Mark ??? New-style Linux makefiles, SWIG wrappers
Abrosimov, Dmitry Intel Corp. Optimization, Eigen objects
Bradski, Gary Intel Corp. Idea and Vision, Leading, CAMSHIFT & MHI algorithms and more ...
Bornet, Olivier IDIAP Research Institute New-style Linux makefiles, SWIG & specialized Python wrappers
Bouguet, Jean-Yves Intel Corp. Algorithms for Camera calibration, calibration toolbox for MATLAB,
and LK in pyramids
Bovyrin, Alexander Intel Corp. Contours, Stereo
Burenkov, Denis Moscow State Uni Contour morphing, hawk scripts
Burenkov, Denis Moscow State Uni Contour morphing, several demo scripts
Cherepanova, Tatiana Novosibirsk University Face tracking
Cherepennikov, Valery Intel Corp. Optimization, matrices, estimators (Kalman, ConDensation) and more ...
Chudinovich, Boris Intel Corp. Ideas and algorithms on contours and comp. geometry functions
Cowperthwaite, David Intel Corp. 3d Tracker
Cox, Cory Intel Corp. 3d Tracker
Davies, Bob Intel Corp. First OpenCV install, communications with user group, tech. advisor
Davies, Bob Intel Corp. First OpenCV installation program, communications with user group, tech. advisor
Eaton, Daniel ??? Texture descriptors code
Eruhimov, Victor Intel Corp. Hough & distance transforms, stereo, Hawk and more ...
Eruhimov, Victor Intel Corp. Hough & distance transforms, stereo, Hawk, HighGUI and more ...
Grachev, Ilya Intel Corp. TCL/TK demos (cvlkdemo, cvcsdemo, cvenv)
Khudyakov, Vasily Novosibirsk University Face feature detection
Kuranov, Alexander Intel Corp. Matlab wrappers, Face detection code
Kuranov, Alexander Intel Corp. Matlab wrappers, Face detection code, haartraining and related applications
Kuriakin, Valery Intel Corp. Started OpenCV project in Nizhny Novrogod Lab
Lantz, Philip Intel Corp. 3d Tracker
Lienhart, Rainer Intel Corp. Haar feature-based face detection algorithm and the original code
Lantz, Philip Intel Corp. 3d Tracker
Molinov, Sergey Intel Corp. HMM face recognition code, POSIT, snakes, optical flow, stereo and more ...
Mosyagin, Valery Intel Corp. View morphing, camera calibration code (C),
fundamental matrices estimation
fundamental matrix estimation
Nefian, Ara Intel Corp. Algorithm for HMM face recognition
Oblomov, Sergey Intel Corp. Camshift and histogram code, linux scripts and makefiles, optimization and more ...
Pisarevsky, Vadim Intel Corp. OpenCV hacker :)
Expand Down
126 changes: 113 additions & 13 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,103 @@
=============================================================================
OpenCV beta 5, Thursday, July 21, 2005
=============================================================================

>>> New functionality/features: <<<
- (Linux) Support for more cameras has been added in highgui.
Different versions of libdc1394 can now be used.
(thanks to Frederic Devernay for the new versions of cvcap_dc1394.cpp,
cvcap_v4l.cpp and patches for configure script,
thanks to Sfuncia Fabio for the patch for cvcap_v4l.cpp)

- (Linux) More types of video files can now be read by using libavformat
and libavcodec from ffmpeg-0.4.9pre1
(thanks to Frederic Devernay for new version of cvcap.cpp and patches for
configure script)

- (Linux) Python wrappers for OpenCV have been created
by Olivier Bornet and Mark Asbach using SWIG.
See opencv/interfaces/python and opencv/samples/python.
While the wrappers should be OS-independent,
so far they have been built on Linux only.

- OpenCV now builds and runs on 64-bit platforms: EM64T (a.k.a. AMD64)
and IA64 (Itanium). Extra configurations have been added to project files
for MsDevStudio 6.0.

- Performance tests for cxcore and part of cv have been created.
the output format is plain csv and is similar to the one used in IPP.
run "cxcoretest -t" and "cvtest -t".

- Haartraining now automatically produces .xml database along
with the usual directory tree.

- Script for creating custom dynamic library for a subset of IPP, used by OpenCV,
has been created. Look at opencv/interfaces/ipp

- Several new functions have been added: Background/foreground segmentation
(see cvaux/include/cvaux.h, "Background/foreground segmentation" section and
cvaux/src/), cvHoughCircles (circle detection), cvPointPolygonTest,
cvRemap (generic geometrical transformation), cvLogPolar (log-polar transform),
cvEqualizeHist (histogram equalization), cvCornerHarris (Harris corner detector).

- Camera calibration and epipolar geometry functions have been completely rewritten,
API was simplified, and docs updated.

- New checkerboard detection algorithm (based on Vladimir Vezhnevets' code)
is now used.

- cvCvtColor supports new color models (HLS, CIE L*u*v*),
for every RGB->something transformation the inverse is provided,
32f format is completely supported, 16u is partially supported.

- Distance transform was extended to find the nearest connected component
of zero pixels for every pixel, not only the distance to it.

- (Windows) Highgui now remembers positions of a last few opened windows in registry.

>>> Optimizations: <<<
- The following functions have been optimized by using IPP when it is available:
morphology, linear and non-linear filtering (cvFilter2D, cvSobel, cvSmooth),
template matching, color conversions, geometrical transformations (cvResize,
cvWarpAffine, cvWarpPerspective, cvRemap), image moments

And more with new IPP 5.0 (beta):
haar object detection, LK optical flow with pyramids, undistortion.

- MatchTemplate has been completely rewritten to use DFT that resulted in
1 or 2 order(s) of magnitude faster operation.
Color images are now accepted (output is always 1-channel).

- C version of morphology with rectangular elements is ~1.5-2x faster than in beta 4.

- Most of image statistics functions have been rewritten with a noticeable performance gain.

- A few other functions have been optimized: threshold,
background statistics accumulation, corner detectors (cvCornerMinEigenVal,
cvCornerEigenValsVecs, cvPreCornerDetect), distance transform, median filter (3x3),
lens undistortion

>>> Bug fixes: <<<

- A lot of bugs have been fixed, thanks to all the people who submitted bug reports
and/or patches. The following functions have been fixed (this is incomplete list):

* cvFilter2D (crashed on floating-point images)
* cvDFT (bug in processing of long power-of-2 series),
* cvWarpPerspective & cvWarpPerspectiveQMatrix,
* cvSobel, cvErode, cvDilate, cvSmooth (occasionally ran beyond buffer boundaries)
* cvApproxPoly (left extra points on edges)
* cvConvexHull (handled 32f case incorrently)
* cvMinEnclosingCircle (sometimes the circle is not enclosing: fixed partially)
* cvFitEllipse (produced wrong results quite often, now it is much better)
* cvCanny (bug in non-maxima suppression stage)
* drawing functions (handled 16-bit images incorrectly)
* persistence functions (cvLoad, cvSave, cvRead*, cvWrite* etc.) (several bugs)
* color conversions (several bugs)
* cvResize (bottom row processing)
* Haartraining (several bugs)
* motion templates (a few bugs)

=============================================================================
OpenCV beta 4, Friday, August 13, 2004
=============================================================================
Expand All @@ -7,17 +107,17 @@
cv (image processing and computer vision part)
and cxcore (basic functionality that is shared with OpenPNL)

so any application that linked cv should now link both cv and cxcore.
so any application that was linked with cv should now be linked with both cv and cxcore.

- DLLs now have a version number (096 for beta 4) in their names, so they do not
conflict with applications using libraries from previous (and future) OpenCV releases.
Import libraries on Windows do not have version numbers in their names.

- Many of applications have been dropped/replaced with simple demo samples (see opencv/samples/c):
- Hawk, HMMDemo, LKDemo, VMDemo, vmdemotk have been dropped completely.
- Hawk, HMMDemo, VMDemo and vmdemotk have been dropped completely.
- LKDemo and cvlkdemo have been replaced with sample lkdemo.c
- HaarFaceDetect has been replaced with facedetect.c
- cvcsdemo has been replaced with camshiftdemo.c
- CamShiftDemo and cvcsdemo have been replaced with camshiftdemo.c

- Some of obsolete functions, including e-HMMs, eigen objects, view morphing ...
have been moved from cv to cvaux.
Expand All @@ -29,8 +129,8 @@
resulting in noticeable performance increase for many functions.

- On linux there is no cvcam anymore. Highgui should be used instead
Windows version is also obsolete and will be removed as soon as DirectShow support
will be added to highgui.
Windows version of cvcam is also obsolete and will be removed as soon
as DirectShow support will be added to highgui.

- Interfaces for EiC, Ch and MATLAB have been temporarily dropped.

Expand Down Expand Up @@ -86,19 +186,19 @@
- DFT functions now use mixed-radix algorithm and, optionally,
DFT/FFT functions from IPP.

- Matrix multiplication now is done by blocks resulting
- Now matrix multiplication is done by blocks resulting
in better cache utilization => better performance.
Optionally, gemm from Intel MKL can be used.

- Lucas-Kanade Optical flow includes a few heuristics that significantly
improve performance (thanks to Alexander Kibkalo for the patch).

- cvRound nows uses inline assembly when built with Visual C++, Intel Compiler
- cvRound now uses inline assembly when built with Visual C++, Intel Compiler
or GCC 3.x (the latter is done via C99 lrint() function). That also
resolves the problem with Direct3D and few others (thanks to HCK (hengck23) for the hint).

- Morphology with arbitrary-shaped element now processes only
the aperture elements corresponding non-zero coefficients (so cvFilter2D does)
the neighbors corresponding to non-zero coefficients (so cvFilter2D does)
in a single loop that gives +1.5x performance increase.

- alloca() has been replaced by cvStackAlloc that returns an aligned pointer.
Expand All @@ -111,17 +211,17 @@
that almost eliminates the worst (quadratic complexity) case and
improves performance on nearly-sorted sequences.

- Some typical operations on data structure, such as retrieving sequence element,
- Some typical operations on data structures, such as retrieving sequence element,
retrieving graph edge, positioning sequence reader have been optimized for
faster average performance and smaller overhead.

- Special vectorized versions of double-precision math functions (cvExp, cvLog etc.)
have been created. Optionally, ippvm is used if available, which gives incredible
performance improvement.
have been created. Optionally, ippvm from IPP is used when available,
which gives incredible performance improvement.

>>> Bug fixes: <<<

(this is an incomplete list, unfortunately)
(this is an incomplete list ...)
- Several bugs in cvSVD and cvSVBkSb have been fixed.
Thanks to Siddhartha Chaudhuri, John Coady and others for the reports and patches.
- Probabilistic hough transform crashed
Expand Down Expand Up @@ -175,7 +275,7 @@
- cvCalcEMD2 checked the size of output flow matrix incorrectly.
Thanks to Duckhoon Kim for the patch.
- [SF bug #898556] cvGetDimSize() always returned error. Thanks to unknown author for the report.
- Multiple bugs in reference manuals have been fixed. Thanks to Irina Shevtsova, Pavel Yarykin,
- Multiple bugs in the reference manuals have been fixed. Thanks to Irina Shevtsova, Pavel Yarykin,
Stepan Dilman and others for the reports.
- Several patches for better portability to Linux and IA64 have been applied
Thanks to Sam Hocevar.
Expand Down
50 changes: 44 additions & 6 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -155,11 +155,11 @@ Linux

+ libpng, libjpeg and libtiff with development files.

+ libavcodec from ffmpeg 0.4.8 + headers.
+ libavcodec from ffmpeg 0.4.9-pre1 + headers.
Earlier version do not work with OpenCV because of different API.
libavcodec is LGPL software, so to use it with non-GPL software (such as OpenCV)
you need to build and use a _shared_ library libavcodec.so.*:
get ffmpeg-0.4.8 from ffmpeg.sourceforge.net
get ffmpeg-0.4.9-pre1 from ffmpeg.sourceforge.net
./configure --enable-shared
make
make install
Expand All @@ -169,11 +169,11 @@ Linux
Now build OpenCV:
======

a) if your distribution uses RPM, you may build RPMs via:
rpmbuild -ta OpenCV-x.y.z.tar.gz" (for RH 8.x) or
rpm -ta OpenCV-x.y.z.tar.gz" (for others)
a) if your distribution uses RPM, you may build RPMs using:
rpmbuild -ta OpenCV-x.y.z.tar.gz (for RPM 4.x or later) or
rpm -ta OpenCV-x.y.z.tar.gz" (for eariler versions of RPM)
where OpenCV-x.y.z.tar.gz should be put to /usr/src/redhat/SOURCES/ or
similar folder
similar directory

it will build OpenCV-x.y.z.*.rpm (there is no OpenCV-devel,
everything is in one package)
Expand All @@ -197,6 +197,28 @@ Linux
default installation path is /usr/local/lib and /usr/local/include/opencv,
so you need to add /usr/local/lib to /etc/ld.so.conf (and run ldconfig after)

c) if you want to step in as an OpenCV developer, you will need some additional tools:

autoconf-2.59 (including autoheader-2.59)
automake-1.6 (including aclocal-1.6)
libtool-1.5 (including libtoolize-1.5)
swig (version 1.3.24 is best)

If the default versions of these tools installed on your machine differs, you
should specify the paths to the required versions via environment variables. For
example, if 'automake --version' gives you a version number 1.7.x but there is
/usr/bin/automake-1.6 installed on your machine, then call

export AUTOMAKE=/usr/binautomake-1.6

whenever you want to work on OpenCV sources.

In addition, you should 'configure --enable-maintainer-mode', so that all
autotools are invoked automagically, if Makefile's or the configure-script
need to be regenerated. You can manually regenerate everything by starting
'autoreconf' from the top directory.


How to test OpenCV:
=======

Expand All @@ -210,5 +232,21 @@ Linux
g++ `pkg-config --cflags opencv` -o morphology morphology.c `pkg-config --libs opencv`
Plain gcc won't work because of unresolved c++-specific symbols (located in highgui?)

How to make OpenCV use IPP:
=======

+ install IPP.
Let's assume, it installs to /opt/intel/ipp/4.1/ia32.

+ add <install_path>/bin and <install_path>/bin/linux32
(for example, /opt/intel/ipp/4.1/ia32/bin and /opt/intel/ipp/4.1/ia32/bin/linux32)
to LD_LIBRARY_PATH in your initialization script (.bashrc or similar):

LD_LIBRARY_PATH=/opt/intel/ipp/4.1/ia32/bin:/opt/intel/ipp/4.1/ia32/bin/linux32:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

or add these two directories, one per line, to /etc/ld.so.conf and run
ldconfig as root.

+ that's it. Now OpenCV should be able to locate IPP shared libraries and make use of them.

16 changes: 11 additions & 5 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -1,19 +1,24 @@
# The top-level input Makefile for OpenCV

# require automake 1.4
# AUTOMAKE_OPTIONS = 1.4
# tell make where aclocal finds its files in Maintainer Mode
ACLOCAL_AMFLAGS = -I ./autotools/aclocal

## Any directories that you want built and installed should go here.
SUBDIRS = cxcore cv cvaux otherlibs apps tests samples data docs
if BUILD_APPS
APPS_DIR = apps
else
APPS_DIR =
endif
SUBDIRS = cxcore cv cvaux otherlibs interfaces $(APPS_DIR) tests samples data docs

## Any directories you want a part of the distribution should be listed
## here, as well as have a Makefile generated at the end of configure.in
##
## This only works for subdirectories one level deep.
DIST_SUBDIRS = $(SUBDIRS)
DIST_SUBDIRS = $(SUBDIRS) apps

# All the rest of the distributed files
EXTRA_DIST = THANKS COPYING INSTALL README NEWS ChangeLog opencv.spec opencv.spec.in opencv.pc.in opencv.pc autogen.sh _make utils
EXTRA_DIST = THANKS COPYING INSTALL README NEWS ChangeLog opencv.spec opencv.spec.in opencv.pc.in opencv.pc _make utils autotools

pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = opencv.pc
Expand All @@ -23,6 +28,7 @@ $(PACKAGE)-$(VERSION).tar.gz: dist

dist-hook:
rm -rf `find $(distdir) -name CVS`
chmod u+x $(srcdir)/utils/unix2dos.py
find $(distdir) -name *.dsw -exec $(srcdir)/utils/unix2dos.py {} \;
find $(distdir) -name *.dsp -exec $(srcdir)/utils/unix2dos.py {} \;

Expand Down
Loading

0 comments on commit 4236e61

Please sign in to comment.