<< Chapter < Page | Chapter >> Page > |
Then Listing 11 calls the inverseXform2D method to transform the complex wavenumber spectrum into a real space function. The inverseXform2D method requires the real and imaginary parts of the complex wavenumber spectrum as input parameters.
(Note that these are the original real and imaginary parts of the complex wavenumber spectrum. They are not the versions for which the originhas been shifted for display purposes.)
The inverseXform2D method also receives an incoming array object in which to store the real result of the transform process.
Finally, Listing 12 displays the result of the inverse transform as a surface in the space domain. This surface should compare favorably with the original surface that was transformed into the wavenumber domain in Listing 8
Listing 12. Display the result of the inverse transform. |
---|
new ImgMod29(recoveredSpatialData,3,false,
displayType); |
The output produced by Listing 12 is shown in the lower-left image in Figure 4 . Compare this with the input surface shown in the top-left image in Figure 4 . As you can see, they do compare favorably. In fact, they appear to be identicalin this grayscale plotting format. We will see later that when a more sensitive plotting format is used, small differences in the two may become apparent.
As discussed earlier, the code in Listing 13 samples and displays a few corresponding points on the original surface and the surface produced by theinverse transform process. The results can be used to evaluate the overall quality of the process as well as the correctness of the overall scaling.
Listing 13. Display some numeric results. |
---|
for(int row = 0;row<3;row++){
for(int col = 0;col<3;col++){
System.out.println(spatialData[row][col]+ " " +
recoveredSpatialData[row][col] + " ");}//col
}//row}//end main |
Each line of output text contains two values, and ideally the two values should be exactly the same. Realistically, because of small computational errorsin the transform and inverse transform process, it is unlikely that the two values will be exactly the same except in computationally trivial cases. Unlessthe two values are very close, however, something probably went wrong in the transform process and the results should not be trusted.
Listing 13 also signals the end of the main method.
Now we know how to use the ImgMod30 class and the ImgMod29 class to:
It is time to for us to take a look at the method named getSpatialData that can be used to create any of fourteen standard surfaces in the space domain.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?