ChangeLog 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  1. Log of changes made to matlabPyrTools code
  2. (important changes marked with **)
  3. -----------------------------------------------------------------------
  4. 2009-12-17 Eero Simoncelli <eero@sesto.cns.nyu.edu>
  5. * Made new tarfile (version 1.4)
  6. * imStats.m: Now also prints the skew.
  7. 2009-12-17 Rob Young <ryoung@cns.nyu.edu>
  8. * Fixed compilePyrTools.m error messages by making individual
  9. const mxArray arg variables.
  10. 2009-12-17 Rob Young <ryoung@cns.nyu.edu>
  11. * Added compilePyrTools.m to the MEX directory, which takes care
  12. of compiling all C files for the current platform.
  13. 2009-12-17 Rob Young <ryoung@cns.nyu.edu>
  14. * Incorporated HTML versions of tutorials
  15. 2005-07-01 Eero Simoncelli <eero@sesto.cns.nyu.edu>
  16. * Discovered that innerProd.c is now significantly slower than
  17. just executing M'*M in matlab, due to speedups in recent versions
  18. of matlab! So eliminated the MEX file, and the warning in
  19. innerProd.m. Left innerProd.m behind for backward compatibility.
  20. 2005-05-04 Eero Simoncelli <eero@sesto.cns.nyu.edu>
  21. * Fixed blur.m to handle arbitrary size images
  22. 2005-01-03 Eero Simoncelli <eero@sesto.cns.nyu.edu>
  23. * MEX/Makefile-linux: Added innerProd to Make files
  24. 2004-11-28 Eero Simoncelli <eero@sesto.cns.nyu.edu>
  25. * blur.m (res): added missing arguments in call to upBlur.
  26. 2004-10-27 Eero Simoncelli <eero@sesto.cns.nyu.edu>
  27. * mkGaussian.m: MEAN arg can now be 1D.
  28. 2004-10-14 Eero Simoncelli
  29. * Made new tarfile (version 1.3)
  30. * Incorporated complex-valued steerable pyramid code (buildSCFpyr,
  31. buildSCFpyrLevs,reconSCFpyr) written by Javier Portilla in 9/97,
  32. and used in our work on texture representation/synthesis
  33. (Portilla&Simoncelli, Int'l Journal of Computer Vision,
  34. 40(1):49-71, Dec 2000).
  35. * Incorporated imGradient.m from personal code.
  36. * reagan.pgm out. feynam.pgm in
  37. 2004-03-20 Eero Simoncelli
  38. * blur.m added (just calls blurDn and then upBlur).
  39. 2003-08-06 Eero Simoncelli
  40. * blurDn.m (filt): Forced correct scaling of filters in 1D
  41. 2003-05-28 Eero Simoncelli
  42. * incorporated setPyrBand.m from local code
  43. 2002-10-01 Eero Simoncelli <eero.simoncelli@nyu.edu>
  44. * incorporated clip.m from local code
  45. 2002-09-18 Eero Simoncelli <eero.simoncelli@nyu.edu>
  46. * pointOp.m: Added the new 'extrap' option for matlab's interp1 to
  47. make this m-file version more compatible with the mex version.
  48. Wed Aug 28 2002 Eero Simoncelli <eero.simoncelli@nyu.edu>
  49. * var2.m: now returns zero (instead of error) for matrix of size 1.
  50. * function VECTORIZE renamed to VECTIFY, since it was colliding
  51. with a function introduced in standard matlab.
  52. Dec 27 2001 Eero Simoncelli <eero.simoncelli@nyu.edu>
  53. * Modified calls to upConv in reconSpyr.m and reconSpyrLevs.m so
  54. that the returned result is bound. Previously, had relied on the
  55. MEX version of upConv to destructively modify the result array,
  56. users had been getting errors because they were using the m-file
  57. version of upConv.
  58. Wed Sep 19 2001 Eero Simoncelli <eero.simoncelli@nyu.edu>
  59. * buildSFpyrLevs/reconSFpyrLevs: replace use of "i" with sqrt(-1), to
  60. avoid problems if user rebinds it!
  61. Wed Mar 28 10:22:01 2001 Eero Simoncelli <eero.simoncelli@nyu.edu>
  62. * Moved innerProd.m and all associated MEX files from the
  63. matlabLocal source tree into matlabPyrTools.
  64. * Added innerProd to Contents.m
  65. * Updated/clarified WARNINGS in all *.m files that have MEX versions.
  66. Tue Mar 27 11:21:53 2001 Eero Simoncelli <eero.simoncelli@nyu.edu>
  67. * Incorporated Windows MEX files (*.dll) into MEX subdirectory.
  68. Windows users should either copy these into the main directory,
  69. or put the MEX subdirectory in their matlab path.
  70. Fri Mar 23 14:46:16 2001 Eero Simoncelli <eero.simoncelli@nyu.edu>
  71. * buildSFpyrLevs.m, reconSFpyrLevs.m: shift the raised-cosine
  72. lookup table (Xrcos) instead of incrementing the log-radial image
  73. (log_rad). THis is more efficient...
  74. Fri Oct 1 19:37:03 1999 Eero Simoncelli <eero.simoncelli@nyu.edu>
  75. * upConv.m: Did not return correct size result when STOP argument
  76. was passed. Thanks to hertzman@mrl.nyu.edu for pointing this out.
  77. Fri Sep 17 15:53:26 1999 Eero Simoncelli <eero.simoncelli@nyu.edu>
  78. * buildSFpyrLevs.m: Changed lutsize to 1024, giving a slight
  79. increase in accuracy.
  80. Thu Feb 25 18:10:38 1999 Eero Simoncelli <eero.simoncelli@nyu.edu>
  81. * histo1.m: Modified histo.m to be more compatible (but still not
  82. exactly the same) as the MEX file version.
  83. Fri Jun 12 21:15:39 1998 Eero Simoncelli <eero.simoncelli@nyu.edu>
  84. * TUTORIALS pyramids.m upgraded.
  85. Tue Feb 17 13:22:28 1998 Eero Simoncelli <eero.simoncelli@nyu.edu>
  86. * showIm.m: Dims are now printed followed by the zoom factor.
  87. Mon Oct 13 14:49:51 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  88. * mkSquare.m: Modified to do raised-cosine soft threshold
  89. transitions.
  90. Tue Oct 7 10:13:51 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  91. * upConv.m: Argument order was wrong (this function is not used
  92. anyway, unless you don't compile the MEX code). - Thanks to
  93. farid@psyche.mit.edu for pointing this out.
  94. Thu Sep 25 16:09:49 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  95. * MEX/wrap.c: Changed #include <malloc.h> to <stdlib.h>, as
  96. suggested by David Brainard. * Incorporated Mac-compiled mex
  97. files, courtesy of David Brainard.
  98. Sat Sep 6 16:10:25 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  99. * MEX/convolve.h: abstracted out type of images with typedef image_type.
  100. Added ansi declarations.
  101. Fri Aug 29 13:49:16 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  102. ** showIm.m: Modified to behave better under resizing (and printing):
  103. resets axis units to "normalized".
  104. Thu Aug 28 22:56:52 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  105. ** MEX/edges.c: reflect1, reflect2, repeat, extend upgraded to work
  106. properly for non-symmetric filters. reflect2 and extend were also
  107. broken for upConv. Added qreflect2 to handle even-length QMF's
  108. which broke under the reflect2 modification.
  109. * Added example code to TUTORIALS/matlabPyrTools to illustrate the
  110. boundary-handling behavior...
  111. Thu Aug 21 13:34:17 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  112. * var2, skew2, kurt2: modified to return complex values for complex images.
  113. * imStats.m: now gives an error for complex args.
  114. Thu Aug 14 15:24:29 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  115. * Modified shift.m: negated the meaning of the offset parameter,
  116. such that RES=shift(MTX,OFFSET) means RES(POS)=MTX(POS-OFFSET)
  117. (this is more intuitive).
  118. Thu Jul 10 17:06:52 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  119. * Modified MEX/Makefile-* to be consistent with matlab5:
  120. - call mex instead of cmex
  121. - use -V4 flag (creating matlab v4 compatible binaries)
  122. * showIm.m (xlbl_offset): Modified to use "points" units, so that
  123. printed images look correct. Still slightly busted for arbitrary figure
  124. window sizes and for printing.
  125. * Modified upConv.c: does not return ANYTHING if you pass a result
  126. argument (this had been causing occasional problems with matlab's
  127. memory manager).
  128. Mon Jun 30 12:09:30 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  129. * reconSFpyr.m (res): now returns real part (oops).
  130. * reconSpyrLevs.m (maxLev): got rid of superfluous nbands argument
  131. (can be calculated from bfilts).
  132. Mon May 26 12:29:54 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  133. * showIm.m/pgmWrite.m: Modified 'auto3'-scaling to use a
  134. histogram. This gives a significant speedup.
  135. * fixed a few minor bugs in the TUTORIALS, having to do with
  136. matching image sizes to the machine speed...
  137. Sat May 10 17:27:25 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  138. * pgmWrite.m: fixed auto-scaling bug. Added new scaling
  139. calculations, parallel to those of imShow.
  140. Fri May 9 09:02:56 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  141. * buildSFpyr.m: Changed NBANDS argument to be ORDER, which is one
  142. less than the number of orientation bands. This is consistent
  143. with the derivative order, and the labels on the spNFilters files.
  144. Tue May 6 19:08:18 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  145. ** Added buildSFpyr, reconSFpyr: Steerable pyramids constructed
  146. in the Fourier domain. Radial functions tile, with a
  147. raised-cosine falloff. Angular functions are
  148. cos(theta-k\pi/(K+1))^K, where K is the order (number of bands
  149. minus 1). Compared to the convolution version:
  150. + Reconstruction is exact (within floating point errors)
  151. + Can produce any number of orientation bands.
  152. - Typically slower.
  153. - Boundary-handling must be circular.
  154. Could be made much more efficient by taking advantage of symmetries in
  155. the fft!
  156. * Added example usage of Fourier steerable pyramid to TUTORIALS/pyramids.m
  157. * steer.m: fixed for harmonic lists including zero.
  158. Sun May 4 15:16:10 1997 Eero Simoncelli <eero@ferrando.cns.nyu.edu>
  159. * MEX/Makefile-linux: created.
  160. * spyrHt, spyrNumBands: Modified to return 0 for pyramids of height 0.
  161. * reconWpyr.m: utilize desctructive addition in calls to upConv.
  162. * reconSpyr.m: Added error check to ensure consistancy between
  163. pyramid and filter file. Utilize destructive addition in upConv
  164. call on highpass band. Modified to work properly with pyramids of
  165. height 0.
  166. Mon Apr 28 13:38:10 1997 Eero Simoncelli <eero@ferrando.cns.nyu.edu>
  167. * lplot.m: modified to handle complex vectors, use standard MatLab
  168. indices, and show minimal axes. Added xrange parameter to allow
  169. adjustment of X axis labeling.
  170. Sun Apr 27 20:20:41 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  171. * var2, skew2, kurt2: enhanced to work on complex matrices.
  172. Sat Apr 26 11:16:12 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  173. * Changed parent directory (and distribution) name:
  174. matlabImTools -> matlabPyrTools
  175. * namedFilter.m: Added two more Daubechies filters, and modified
  176. names to match the reference (e.g., daub2 is now a 4-tap filter).
  177. * Added vectorize.m: trivial function to pack matrix into vector (i.e.,
  178. computes mtx(:)).
  179. * Added upBlur.m: Upsample and blur (parallels blurDn).
  180. Sun Apr 13 14:23:38 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  181. * TUTORIALS/pyramids.m: Added plots of Fourier spectra for Wavelet bases.
  182. * make-tar-file: switched from compress to gzip for the
  183. distribution tarfile.
  184. * namedFilter.m: Added a few even-length QMF's from Johnston80.
  185. Fri Apr 11 19:16:21 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  186. * buildWpyr.m, reconWpyr.m: Modified slightly, so that subsampling
  187. lattice is better for even-length filters.
  188. * TUTORIALS/pyramids.m: Substantially overhauled.
  189. Thu Apr 10 15:20:23 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  190. * blurDn.m: added this function to downsample an image by a factor
  191. 2^L.
  192. * Fixed minor bug in upConv.m: errors in image size checking.
  193. Mon Apr 7 13:25:37 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  194. * Changed TUTORIALS/matlabImTools.m to use histo.mex instead of
  195. matlab's hist.
  196. Wed Apr 2 13:20:55 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  197. ** Incorporated Denis Pelli's ThinkC and MetroWorks projects for
  198. Macintosh versions of the MEX code, along with MEX binaries. These
  199. are included as an HQX'ed self-extracting archive
  200. (Macintosh-MEX.sit.hqx), in the MEX subdirectory.
  201. Tue Apr 1 15:35:31 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  202. * edges.c: modified by Denis Pelli to support THINK C. * edges.c:
  203. * histo.c, upConv.c, corrDn.c: minor changes in error message
  204. printouts, to work around bugs in THINK C.
  205. * Included Denis Pelli's MacReadMe file in the MEX subdirectory,
  206. which gives instructions for MEX file compilation on a MacIntosh
  207. (PPC or 68k).
  208. * wrap.c, convolve.c, edges.c: added explicit int function
  209. declarations, and return values.
  210. * range2.m/range2.c: A MEX function for fast min/max computation.
  211. Adjusted entropy2.m, histo.m, imStats.m, pgmWrite.m, showIm.m,
  212. showLpyr.m, showSpyr.m, showWpyr.m to call it.
  213. Thu Mar 27 17:23:05 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  214. ** histo.m/histo.c: Added MEX function HISTO, a fast replacement
  215. for matlab's HIST function. Modified histoMatch.m, entropy2.m to
  216. call it.
  217. * Changed main directory name to matlabImTools.
  218. * Added TUTORIALS/README file.
  219. Wed Mar 19 14:19:51 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  220. * Changed directory name: MEX_SRC -> MEX
  221. Wed Mar 12 17:00:03 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  222. * mkGaussian.m: fixed another (X,Y) bug: both dimensions and
  223. cov/mean are now specified in [y,x] order.
  224. Tue Mar 11 19:08:17 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  225. * showSpyr.m: Fixed a bug that was dropping display of one
  226. orientation band when there were more than 2 of them!
  227. Mon Mar 10 19:08:24 1997 Eero Simoncelli <eero@chrysothemis.cims.nyu.edu>
  228. * Added shift.m
  229. * makeSteerMtx -> steerDir2HarmMtx
  230. * Added TUTORIALS/matlab-EPS.m: examples using the code in this
  231. distribution.
  232. Sun Mar 9 17:49:18 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  233. ** showIm.m:
  234. - args: changed order so that NSHADES is last.
  235. - TITLES: Can now pass a string for IM, which will be evaluated
  236. in the global environment to get the matrix. The string is
  237. used as a title. MATLAB v.5 ONLY!!!
  238. - Added 'auto3' RANGE value, that scales based on percentiles.
  239. THis is more robust to outliers than 'auto2' or 'auto1'.
  240. * pixelAxes.m: Made a more serious attempt to reverse-engineer
  241. Mathworks' image pixelization. It is improved, but still makes
  242. occasional errors.
  243. * Added skew2.m.
  244. Fri Mar 7 10:11:07 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  245. * pixelAxes.m: Modified to take an optional
  246. ZOOM argument. Fixed dimension ordering bug
  247. (positions are reported (x,y), but mtx dims are (y,x)!)
  248. * showIm.m: Added an optional ZOOM argument.
  249. Thu Mar 6 14:17:19 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  250. * Added showLpyr, showWpyr, showSpyr. Modified
  251. TUTORIALS/pyramids.m to use them.
  252. * added pixelAxes.m: Adjusts size (in pixels) of currently
  253. displayed image to be a multiple of the matrix dimensions,
  254. thus eliminating display aliasing artifacts.
  255. This is now called by all the "show" commands.
  256. Mon Mar 3 17:33:25 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  257. * Fixed bug in pgmWrite (dimensions were written in reverse order).
  258. * Fixed bug in showIm (X and Y coords were swapped on label display).
  259. * Fixed bug in reconLpyr (swapped X and Y coords on int_sz)
  260. * Changed calls to "reshape" to pass dimensions individually --
  261. older version of matlab do not accept the reshape(mtx,[y x]) form.
  262. * Fixed bug in mkDisc: sz a scalar.
  263. * Added ifftshift.m
  264. Fri Feb 28 11:07:20 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  265. * Re-worked TUTORIALS/pyramids.m
  266. * buildGpyr and buildLpyr now use 1+maxPyrHt for default height.
  267. * Fixed buildGpyr to work on 1D signals.
  268. ** Gaussian/Laplacian/Wavelet pyramid build and recon functions:
  269. - work properly with new corrDn/upConv.
  270. - use separable convolutions
  271. - use destructive modification ability of upConv (less memory
  272. allocation)
  273. * modulateFlipShift -> modulateFlip.
  274. * added lpyrHt, wpyrHt, spyrHt to return number of levels in a pyramid.
  275. Thu Feb 27 15:39:53 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  276. * Changed angular coordinate systems to CLOCKWISE in mkRamp,
  277. mkTheta, mkSine, mkSquare. This is unnatural for screen viewing,
  278. but consistent with an origin in the upper left corner of the
  279. image, which is the way one addresses the underlying matrix.
  280. * mkSine and mkSquare can now take a frequency vector or the
  281. period and direction args
  282. Tue Feb 25 11:58:33 1997 Eero Simoncelli <eero@servilia.cns.nyu.edu>
  283. ** Rewrote corrDn/upConv C routines:
  284. - more efficient
  285. - changed START parameters to have [1 1] origin, consistent with
  286. matlab
  287. - added STOP parameters
  288. - upConv allows destructive modification of a result arg
  289. - changed order of other params (sorry)
  290. - wrote test file conv_test.m
  291. * wrote zconv2.m
  292. Wed Aug 19 20:39:15 1996 Eero Simoncelli (eero@tarpon.cis.upenn.edu)
  293. ** Added "pointOp" function (MUCH faster than interp1).
  294. ** Added "histoMatch" function.
  295. Fri Aug 2 00:56:31 1996 Eero Simoncelli (eero@tarpon.cis.upenn.edu)
  296. * Changed all function/file-names to be of the form "fooBar". *
  297. Fixed entropy2.m (busted due to typo).
  298. Most matlab code was developed from 1992-1996, while the author was an
  299. assistant professor of Computer and Information Science at University of
  300. Pennsylvania.
  301. Original convolution code was written in Spring 1986, and comes from
  302. OBVIUS (Object-Based Vision and Image Understanding System), an
  303. interactive image-processing system written in Common Lisp (with calls
  304. to C code).