Imagick::forwardFourierTransformImage

(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();
}
 
?>
doc_php
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.