[LTIlib] Release 1.9.16
Status: Beta
Brought to you by:
alvarado
From: Pablo A. M. <pal...@go...> - 2010-04-10 16:10:12
|
Hello, it's been almost five years since the last release. We are working now almost exclusively with the LTI-Lib 2, which is just a bridge between the LTI-Lib and the newer CVR-Lib. Due to lack of time, the development of the latter is not as advanced as we would like, but in the mean time, the LTI-Lib 2 is fulfilling its task. However, many many people use the LTI-Lib 1 and the last released version did not compile well with the newer Linux distributions. So, this release is just a way to simplify access to the CVS repository. Enjoy! Pablo -------------- Change-Log Functionality Change: * Thanks to Vincenzo Di Massa now the Makefile can help packagers to override the default link location (ltilib -> ltilib-x.y.z) in /usr/lib and /usr/include (or wherever your --prefix is set to) * doerfler: @CHG: all functors that use LAPACK functionality now use lti:: integer defined in ltiLapackInterface.h for integer types instead of long which is not portable over Distros. * doerfler: @CHG: The copyright dates have been corrected on all source files and some related files to reflect what other projects are doing. The new policy is: Start with the year of creation, append all years between last change and current year if a change is made to a file, creating a comma separated list. Example: A file is created in 2002. This is the only year in the copyright statement. The file gets changed in 2004. The editor must change the copyright line to 2002, 2003, 2004. This is what gcc people are doing and they should know. There is a script to do this for a whole set of files tools/perl/changeCopyright.sh by Thomas Duif. * Some modifications made to the sepKernel class to allow complex kernels. It is more a workaround, to allow compilation, since a lot of functor classes have to be modified to allow complex numbers. * For lti::splitImageToYUV to be fair to its name several changes have been done. This functor in fact implemented the YCbCr color space, as a fix because previously it implemented the YPbPr space. Now, three different functors for the correct spaces are proviced. The "quick" methods were removed because the speedups are now always used, without any sacrifice in accuracy. * doerfler: @CHG: lti::noise now has gaussionDistribution as its default random distribution instead of nothing. Thus the default constructed object is now useful. * doerfler: @CHG: The copyright dates have been corrected on all source files and some related files to reflect what other projects are doing. The new policy is: Start with the year of creation, append all years between last change and current year if a change is made to a file, creating a comma separated list. Example: A file is created in 2002. This is the only year in the copyright statement. The file gets changed in 2004. The editor must change the copyright line to 2002, 2003, 2004. This is what gcc people are doing and they should know. There is a script to do this for a whole set of files tools/perl/changeCopyright.sh by Thomas Duif. Changes in the API: * doerfler: @API: rgbColor::makeHTML(bool) is now const as it should be (on request of Vinzenco di Massa) * haehnel: @API: lti::rgbPixel::setDummy/getDummy are deprecated now, however still can be used but should be substituted by setAlpha/getAlpha instead. Fixed: * If no GTK has been detected, the Makefile now forces the creation of the libltinv?.a libraries so that they exist as required by the lti-config scripts. * Error in Makefile.in did't correctly detected and installed the release libraries. * Gtk was still required even if in the configure it was told not to * doerfler: @FIX: definition of _LTI_CYGWIN had a misspelling for checking against mingw. This was SF bugreport 1425817. Thanks to tamaki. * doerfler: @FIX: revert my previous patch of rgbPixel() default initializing value. This takes too much time when e.g. instantiating a matrix. * doerfler: @FIX: dbScan would use the wrong getParameters() member function in some situations. * haehnel: @FIX ltiAxOGDFeature fix for .NET 2005 could lead to errors with .NET 2003. Now .NET 2003 uses the Visual 6.0 work-around * doerfler: @FIX: lti::convolution with sepKernel and boundaryType Mirror was buggy. Spotted by Peter Hanappe. Thanks. * doerfler: @FIX: lti::fastEllipseExtraction would overflow for images larger than 1290 pixels. This was fixed by translating each segment to near the origin before computation. (patch by Adam Goode) * doerfler: @FIX: lti::geometricFeatures calculated the area and boundary length incorrectly if the boundaryDefinition is set to OuterBoundary. This is not the default, luckily. Patch supplied by Vincezo di Massa and colleagues in http://sourceforge.net/tracker/ index.php?func=detail&aid=1371370&group_id=45767&atid=444019 Thanks alot! * Fix of the read method, which used write methods instead in the lti:: geometricFeaturesFromMask::read(). Thanks to Steve Reuman for the report. * An error in the dot product of hPoint2D and hPoint3D fixed, as the method tried to return a hPoint and not a scalar as it should. * In ltiLinearKernels an error in the separate() method was fixed that affected filling the columns (detected by Benny Winkler) * Ã@FIX: New compilers detected a bug in setting up the parameters, which has been now fixed * ltiMergeCIELuvToImage used the wrong constants to compute the RGB values. Now it is a little bit faster * Many modifiers were broken as the assumed RGB color channel for processing lti::images could not be reached if the derived classes used matrix for the interfaces. The modifier has now channels and their equivalent matrices in the interface, so that at least convolution now works at it was intended to. * Bug reading BMP compressed format fixed. * ltiFireWireDCAM did not support the ltiHardwareConfig.h mechanism to force compilation of hardware related functions. It only supported the Makefile based one (with extern symbols file). Now that support has been reestablished. Furthermore, some comments were added to allow documentation of eMode. * T.Tamaki reported an error in a change between versions that has been now fixed. * doerfler: @FIX: the loadPNG (both pnglib and internal version) and loadJPEG (libjpeg) functors did not set the alpha values correctly. Now set to zero unless stored in a png file. * doerfler: @FIX: loadJPEG as in ltiJPEGLibFunctor.cpp would segfault on corrupt image files due to trying to close the filehandle twice. * The lti::toUCam functor has been updated to use newer features in the new kernel modules. Some code had to be changed in order to ensure newer camera modules to work. * lti::toUCam wasn't able to control the LED. With the newest kernel module pwc it is possible. This may not compile with older pwc-ioctl.h header files. Please ensure that you use the newer modules at http:// www.saillard.org/linux/pwc/ * lti::toUCam writes some extra information in the statusString when an invalid configuration is chosen * doerfler: @FIX: lti::array copy constructor kept a pointer to the original data instead of pointing to the copied data with potentially disasterous consequences. * doerfler: @FIX: lti::noise now correctly handles its internal pointer to a continuousRandomDistribution. This was reported as SF bug 1428343 by Thomas Duif. Thanks. * corrected template class quickPartialSort2 so that it can compile withour errors at instanciation * doerfler: @FIX: fixed memory leak in Windows version of time:: getDateAndTime() (patch by winkler) * doerfler: @FIX: ltiURL.cpp was missing an include for MAC OS X. Thanks to Marco Wilka for spotting this. Added: * doerfler: @ADD: link to Fortran libraries when LAPACK is used. This seems to be needed for gfortran. * doerfler: @ADD: autoconf now detects the pentium-m processor * doerfler: @ADD: autoconf now detects which type is used for integer in f2c.h and sets an internal type accordingly. This is used mainly for LAPACK * doerfler: @ADD: new typedef lti::integer in ltiLapackInterface.h. This type is used as integer type in all LAPACK related functors and is the same as the one found in f2c.h. * doerfler: @ADD: ltiMacroSymbols.h: new symbols for .NET 2003 and .NET 2005 specifically: _LTI_DOT_NET_2003 _LTI_DOT_NET_2005 The old _LTI_DOT_NET still exists but now means either of these versions. * The type uipoint has been added as an alias for tpoint. * ltiBayerDemosaicing now supports all four filter configurations: RGGB, BGGR, GBRG, GRBG. * copy and operator= methods were added to splitImage and mergeImage classes. * There are several conceptual problems in the LTI-Lib with the YUV color space, as the one used by the ltiSplitImageToYUV and ltiMergeYUVToImage is not really the YUV color space but YCbCr. Therefore, new functors lti::splitImageToYCbCr and lti::mergeYCbCrToImage have been added to call the space with its proper name. Additionally, tuning of all coeficients has been done to produce the best conversions possible for float and ubyte and the fastest LUT methods have been kept. * There are several conceptual problems in with the YUV color space, as the one used by the ltiSplitImageToYUV and ltiMergeYUVToImage is not really the YUV color space but YCrCb. Therefore, new functors lti:: splitImageToYCrCb and lti::mergeYCrCbToImage have been added to call the space with its name. Additionally, a tuning of all coeficients has been done to produce the best conversions possible for float and ubyte and the fastest LUT methods have been kept. * lti::mergeYPbPrToImage and lti::splitImageToYPbPr add support for the color space YPbPr, which is usually presented in the literature as the YUV space, which is not true. * doerfler: @ADD: tpointList and thus pointList now has member functions sort() and templatesort(Compare comp), with the same meaning as in the std::list * doerfler: @ADD: lti::loadImageList now has the same checkHeader() member functions a loadImage. * lti::array supports now complex numbers. * Some important information has been added to the viewer documentation, in order to know what to do if a bug of X.Org+GTK pixbufs appear. -- Dr. Pablo Alvarado E-Mail: pal...@ie... Escuela de Ingeniería Electrónica Tel: +506 2550 2257 Instituto Tecnológico de Costa Rica Fax: +506 2591 6629 Apartado Posta 159-7050 Cartago Costa Rica |