Thx for the multiple responses - Mathlab image proc module probably would be the best choice but muchas dollares I found by accident that a cheaper alternative is any graphing package that can make contour plots. I just calc the FTs of generated objects/lattices and the convolutions with a F90 hack into an array, load it into MathCAD and make contour plots. Example http://www.ruppweb.org/images/lattice_fft.gif The web stuff is actually cute but does not exactly what I want and graphics are not high repro quality. For real image transforms I will need to use a graph package eventually.
Best, br -----Original Message----- From: CCP4 bulletin board [mailto:[EMAIL PROTECTED] On Behalf Of Jon Wright Sent: Monday, February 19, 2007 8:59 AM To: [email protected] Subject: Re: [ccp4bb] Advice on img proc software > > The mathcad image processing module is too expensive for my taste. > My university has a campus- wide license for Matlab, so it's *free* for me... > I have no idea of what it would cost to purchase. [reminder: never compare "educational licensing" with giving drugs to schoolchildren.] For something similar to matlab it might be worth investigating python+matplotlib, which are free for everyone (http://www.scipy.org/NumPyProConPage). The script below does a phase/amplitude swap using an fft that came with the old Numeric package, nowadays it might have a different name and hiding place. Best, Jon --- from matplotlib.pylab import * import FFT # test data: i = reshape(array(range(256)*256) , (256,256) ) j = transpose(i) circle = where( (i-128)*(i-128) + (j-128)*(j-128) < 3000 , 10. , 0) square = where( abs(i-128) + abs(j-128) < sqrt(2500) , 10. , 0) # transform image1 = circle image2 = square ft1 = FFT.fft2d(image1) ft2 = FFT.fft2d(image2) phi1=arctan2(ft1.real , ft1.imag) phi2=arctan2(ft2.real , ft2.imag) amp1phi2 = FFT.inverse_fft2d(abs(ft1)*sin(phi2) + abs(ft1)*cos(phi2)*1j) amp2phi1 = FFT.inverse_fft2d(abs(ft2)*sin(phi1) + abs(ft2)*cos(phi1)*1j) # plots: subplot(221);title("image1");imshow(image1) subplot(222);title("image2");imshow(image2) subplot(223);title("amp1 phi2");imshow(amp1phi2) subplot(224);title("amp2 phi1");imshow(amp2phi1) show()
