From: Stefan v. d. W. <st...@su...> - 2004-10-21 09:50:10
|
Hi Justin The script works well. If you want it to be incorporated into octave-forge - add a license - fix imgrotate() octave:1> imgrotate error: `theta' undefined near line 31 column 11 error: evaluating binary operator `*' near line 31, column 17 error: evaluating binary operator `/' near line 31, column 21 error: evaluating assignment expression near line 31, column 9 error: called from `imgrotate' in file `/tmp/imgrotate.m' - attach it to an email (do not include it in the text body) Regards Stefan On Mon, Oct 18, 2004 at 03:55:03PM +0200, Justus H. Piater wrote: > Hi, > > I've had some problems with octave-forge's imrotate.m (lack of > precision, global gray-level alteration, inability to recover the > rotation mapping), so I wrote my own from scratch. > > Highlights: > > - 100% precise (unless you find bugs...), as it works by applying a > rotation homography to each pixel coordinate. The homography is > returned to the caller if desired. > > - "nearest"-neighbor mapping or "bilinear" interpolation > > - "loose" or "crop" bounding box > > - faster than the existing imrotate (on the few informal tests I ran) > > - does not rely on external functions not in core octave > > - code is relatively compact and intuitive (to me at least...) > > Caveats: > > - Only a single-band image matrix is accepted as input for now. > > - Its memory usage can still be improved. It makes heavy use of > exhaustive index lists (to take advantage of vector notation); the > current implementation keeps more of them around simultaneously than > necessary. > > The function is currently called imgrotate to allow it to coexist with > the existing imrotate. However, unless bugs show up, I don't see why > it should not eventually take its place. > > You feedback is more than welcome. > > Enjoy, > Justus > |