Sharpen Images

Sharpening an image typically involves a high-pass filter to increase the contrast between bright and dark regions to better reveal features. The following kernel is an example of a high-pass filter used to sharpen an image. This is just one example; other filters may include more weighting for the center point.

The following example uses the CONVOL function and the above kernel to sharpen a photomicrograph of cultured endothelial cells (Image courtesy of Michael J. Davis, Ph.D., College of Medicine, Texas A&M University).

This example data is available in the examples/data directory of your IDL installation. The code shown below creates the following three images, each displayed in separate windows.

; Import the image.

file = FILEPATH('endocell.jpg', $

   SUBDIRECTORY = ['examples', 'data'])

READ_JPEG, file, orig_image

 

; Display the image.

img01 = IMAGE(orig_image, LOCATION = [0, 0], $

   TITLE = 'Original image of endothelial cells')

 

; Create a kernel for a sharpening (high-pass) filter.

kernelSize = [3, 3]

kernel = REPLICATE(-1./9., kernelSize[0], kernelSize[1])

kernel[1, 1] = 1.

 

; Apply the filter to the image.

filteredImage = CONVOL(FLOAT(orig_image), kernel, $

   /CENTER, /EDGE_TRUNCATE)

 

; Display the filtered image in a new window.

img02 = IMAGE(filteredImage, LOCATION = [250, 0], $

   TITLE = 'Filtered image')

 

; Display the combined images in a new window.

img03 = IMAGE(orig_image + filteredImage, $

   LOCATION = [500, 0], $

   TITLE = 'Result of adding filtered image to original image')

Resources