The remote sensing used to study the human body is very similar to the remote sensing used to study the subsurface. Apart from a scaling factor (due to the different frequencies of the signals used) the only major difference between the two methods of investigation is in that radiologists and doctors looking at an x-ray, ultrasound, or CAT scan image know what to look for in those images, as bones, tissues, and anomalies, have known characteristics, whereas the subsurface is always to a large extent unknown.
In this short visual post I am going to use a CAT scan of King Tut’s skull to explore the effect on the image quality of progressive decimation of the data followed by upsampling it back to the initial size. I will also look at the effect of these manipulations on the results of edge detection.
With this I want to simulate the progressive reduction in imaging quality that happens when going from high density 3D seismic acquisition to medium density 3D seismic to high quality, but sparse 2D seismic lines.
Here’s the input image in Figure 1.
In Figure 2 I am showing the image after import into a Jupiter Notebook and conversion to grayscale, and the result of edge detection using the Sobel filter. Notice the excellent quality of the edge detection result.
To simulate a high-resolution 3D seismic acquisition I decimated the original image by a factor of 4 in both directions. The resulting image (no interpolation) is, shown in Figure 3, is of good quality, and so is the edge detection result.
The image in Figure 4 results from a further decimation by a factor of 2 of the image in Figure 3, then interpolation to upsample to the same size as the image in Figure 4. The image and the edge detection are still of fair quality overall, but some of the smaller features have either disappeared, merged, or faded.
Now look at Figure 5: this is the equivalent of a high quality (in one direction) 2D dataset. Although we can still guess at what this represents, I would argue this is a result of our a priori knowledge of what it is supposed to represent – a human skull; and yet I don’t think anybody would want their doctor to make a diagnosis based on this image.
The image in Figure 6 results from 2D interpolation (my intention is to simulate the result we would get by gridding 2D data to get a continuous image. We can now definitely interpret this as a skull, but the edge detection result is very unsatisfactory.
In future post we will explore the effects of adding periodic noise (similar to seismic acquisition footprint) on these images and on the edge detection results. I will also show you how to remove it using 2D FFT filters, as promised (now more than a year ago) in my post Moiré Patterns.
Matteo, is this exercise perhaps more relevant to scalar potential field data opposed to time series seismics? Especially since this the CT image is a proxy for density, perhaps this is more analogous to Gravity surveys?
At any rate, it’s a great example of decimation, data sparsity, and interpolation. One suggestion is to change the keyword ‘interpolation’ in the Matplotlib imshow call to ‘none’ (not ‘None’!), so we can see precise edges of the pixels, as it were. See,
`plt.imshow(tut_d4, cmap=’gray’, interpolation=’none’)`
You are absolutely right about the interpolation, great that you spotted that, and thanks for letting me know… it is the curse of copying and pasting from other notebooks the ‘boring’ stuff. I will update the notebook and images in the post.
About your other comment, again I agree. An ultrasound would be the real analogue in every sense, but for the frequency difference. Perhaps I will add a paragraph to stress that out. However, I am also not worried about being a bit loose because I wasn’t really trying to have a perfect analogue, as long as the image looked similar to a seismic image, and the edges. Also, I am very fond of this particular photo, and I’m obsessed with the Ancient Egypt: Pharaohs for seismic modeling, Pyramids for colormap testing, you get the gist… 🙂