From: Jeff O. <jj...@cs...> - 2002-06-28 16:16:44
|
Hello all, I have developed "imrotate.m". I noticed that it is not yet implemented in the octave collections. Is there one out there that I've simply not seen? Just want to check before going through the effort of making it compatible with RGB images, colormaps, etc. Jeff |
From: Andy A. <ad...@fr...> - 2002-06-28 20:56:00
|
On Fri, 28 Jun 2002, Jeff Orchard wrote: > I have developed "imrotate.m". I noticed that it is not yet implemented > in the octave collections. Is there one out there that I've simply not > seen? Just want to check before going through the effort of making it > compatible with RGB images, colormaps, etc. I don't think we have imrotate. It would be a great thing to have. One question: don't you think an *.m file implementation would be slow? I have some C code that does image scaling and rotation. (greyscale only) I could contribute that if you'd be interested in doing an *oct file implementation. andy _______________________________________ Andy Adler, ad...@nc... |
From: Jeffery O. <jj...@cs...> - 2002-06-28 21:27:14
|
Your concernes about a .m implementation of imrotate are wise. However, my implementation does not have any loops. It applies the rotation by decomposing the rotaion matrix into 3 shears, and then applies the shears using Fourier interpolation. As a result, it uses the 1D fft function heavily. But since the bulk of those operations are implemented efficiently, the speed is OK. I haven't had the chance to run any benchmarks yet, but I will soon. The function uses another function I could submit, called "imshear.m". Guess what it does! That's right... applies a shear using Fourier interpolation. Certainly, a C implementation of these functions would be at LEAST slightly faster, but I must admit that I'm hesitant because I've never written a .oct routine, and I'm not familiar enough with the API to do it in a timely manner. Not to mention, I hope I wouldn't have to re-implement the fft, etc., myself. Since the vast majority of the data manipulation is offloaded to other routines, it might not be worth it. Since it seems that there are no imrotates lurking around, I guess I wouldn't be re-inventing the wheel. I'll spend some time tying up some loose ends, and you can check out the "alpha release" once I'm done, if you wish. Jeff Andy Adler wrote: >On Fri, 28 Jun 2002, Jeff Orchard wrote: > >>I have developed "imrotate.m". I noticed that it is not yet implemented >>in the octave collections. Is there one out there that I've simply not >>seen? Just want to check before going through the effort of making it >>compatible with RGB images, colormaps, etc. >> > >I don't think we have imrotate. It would be a great thing >to have. > >One question: don't you think an *.m file implementation >would be slow? > >I have some C code that does image scaling and >rotation. (greyscale only) I could contribute that if >you'd be interested in doing an *oct file implementation. > >andy >_______________________________________ >Andy Adler, >ad...@nc... > > > >------------------------------------------------------- >This sf.net email is sponsored by:ThinkGeek >Caffeinated soap. No kidding. >http://thinkgeek.com/sf >_______________________________________________ >Octave-dev mailing list >Oct...@li... >https://lists.sourceforge.net/lists/listinfo/octave-dev > |
From: Andy A. <ad...@fr...> - 2002-06-29 00:37:35
|
On Fri, 28 Jun 2002, Jeffery Orchard wrote: > Your concernes about a .m implementation of imrotate are wise. However, > my implementation does not have any loops. It applies the rotation by > decomposing the rotaion matrix into 3 shears, and then applies the > shears using Fourier interpolation. As a result, it uses the 1D fft > function heavily. Wow. That's cool. I didn't realize that you could do a rotate with shearing. Is the explanation simple? Do you know of any (online) references that explain it? andy BTW. Dynamically loaded functions for octave are _very_ well designed and are quite easy to write. They're much easier to learn than (for example) MATLAB mex syntax or perl xs syntax _______________________________________ Andy Adler, ad...@nc... |
From: Jeff O. <jj...@cs...> - 2002-10-22 23:26:54
|
I have implemented some image processing routines for graylevel images. There is no RGB-smart wrapper yet... just routines that operate on float matrices. They are all .m scripts, so they are not optimized. They also make heavy use of the fft routines. imtranslate uses the Fourier shift theorem to apply a translation using Fourier resampling. imshear also used the Fourier shift theorem. imrotate is am implementation of the shearing method of Paeth to apply rotations using Fourier resampling. This routine uses imtranslate, imshear, and rot90. Feedback? Jeff |
From: Jeff O. <jj...@cs...> - 2002-10-23 16:40:23
Attachments:
MakeShears.m
|
Oops! I'm sorry I forgot to include the function "MakeShears" in my imrotate broadcast. It is needed by imrotate. Thanks, Paul, for your feedback. Jeff |