(No version information available, might only be in Git)
Description
public void Imagick::forwardFourierTransformimage ( bool $magnitude )
Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.
Parameters:
magnitude
If true, return as magnitude / phase pair otherwise a real / imaginary image pair.
Returns:
Examples:
Imagick::forwardFourierTransformImage()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <?php //Utility function for forwardTransformImage function createMask() { $draw = new \ImagickDraw(); $draw ->setStrokeOpacity(0); $draw ->setStrokeColor( 'rgb(255, 255, 255)' ); $draw ->setFillColor( 'rgb(255, 255, 255)' ); //Draw a circle on the y-axis, with it's centre //at x, y that touches the origin $draw ->circle(250, 250, 220, 250); $imagick = new \Imagick(); $imagick ->newImage(512, 512, "black" ); $imagick ->drawImage( $draw ); $imagick ->gaussianBlurImage(20, 20); $imagick ->autoLevelImage(); return $imagick ; } function forwardFourierTransformImage( $imagePath ) { $imagick = new \Imagick( realpath ( $imagePath )); $imagick ->resizeimage(512, 512, \Imagick::FILTER_LANCZOS, 1); $mask = createMask(); $imagick ->forwardFourierTransformImage(true); @ $imagick ->setimageindex(0); $magnitude = $imagick ->getimage(); @ $imagick ->setimageindex(1); $imagickPhase = $imagick ->getimage(); if (true) { $imagickPhase ->compositeImage( $mask , \Imagick::COMPOSITE_MULTIPLY, 0, 0); } if (false) { $output = clone $imagickPhase ; $output ->setimageformat( 'png' ); header( "Content-Type: image/png" ); echo $output ->getImageBlob(); } $magnitude ->inverseFourierTransformImage( $imagickPhase , true); $magnitude ->setimageformat( 'png' ); header( "Content-Type: image/png" ); echo $magnitude ->getImageBlob(); } ?> |
Please login to continue.