Thread View: sci.image.processing
1 messages
1 total messages
Started by Cristy
Wed, 16 Dec 1992 16:37
SUMMARY: Ultra-Fast 90 Degree Image Rotation for Very Large Images
Author: Cristy
Date: Wed, 16 Dec 1992 16:37
Date: Wed, 16 Dec 1992 16:37
48 lines
2251 bytes
2251 bytes
> Could you please enquire on the network whether some body has a fast
> algorithm for rotating by 90 degrees very very large monochrome or
> multichannel images. The problem is nontrivial and probably can be
> handled by exchanging in and out of a limited size buffer that can be
> stored in high speed memory. I have an urgent need for this if we can
> find one.
I got two useful replies.
1. From eddins@eecs.uic, bamberg%trane.eecs.wsu.edu, and haim@utdallas.edu:
Well, there might be something around that's newer and faster, but
consider:
J. O. Eklundh, "A Fast Computer Method for Matrix Transposing," IEEE
Transactions on Computers, C-21 (July 1972), 801-903.
This method is described in:
D. E. Dudgeon and R. M. Mersereau, Multidimensional Digital Signal
Processing, Prentice-Hall, New Jersey, 1984.
2. From pfk@hpux.rz.uni-jena.de:
I know a solution working in this way (C-Notation):
#define MAXX 16384
#define MAXY 16384
#define MAXB 512 /* MAXB*MAXX*(Bytes_per_Pixel) should be smaller
than the main memory. I.e. This is an example
for 16 MB RAM and 8 bits per pixel. */
static unsigned char buffer[MAXY][MAXB], buffero[MAXY];
register i, j, k;
for (i=0; i<MAXX; i+=MAXB)
{ for (j=0; j<MAXY; j++)
lseek(fdin,j*MAXX+i,SEEK_SET),
read(fdin,buffer[j],MAXB);
for (j=0; j<MAXB; j++)
{ for (k=0; k<MAXY; k++)
buffero[k]=buffer[k][j];
write(fdout,buffero,MAXY);
}
}
--
cristy@dupont.com
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads