36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""
|
|
================================================================
|
|
Removing small objects in grayscale images with a top hat filter
|
|
================================================================
|
|
|
|
This example shows how to remove small objects from grayscale images.
|
|
The top-hat transform [1]_ is an operation that extracts small elements and
|
|
details from given images. Here we use a white top-hat transform, which is
|
|
defined as the difference between the input image and its
|
|
(mathematical morphology) opening.
|
|
|
|
.. [1] https://en.wikipedia.org/wiki/Top-hat_transform
|
|
|
|
"""
|
|
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
from skimage import data
|
|
from skimage import color, morphology
|
|
|
|
image = color.rgb2gray(data.hubble_deep_field())[:500, :500]
|
|
|
|
selem = morphology.disk(1)
|
|
res = morphology.white_tophat(image, selem)
|
|
|
|
fig, ax = plt.subplots(ncols=3, figsize=(20, 8))
|
|
ax[0].set_title('Original')
|
|
ax[0].imshow(image, cmap='gray')
|
|
ax[1].set_title('White tophat')
|
|
ax[1].imshow(res, cmap='gray')
|
|
ax[2].set_title('Complementary')
|
|
ax[2].imshow(image - res, cmap='gray')
|
|
|
|
plt.show()
|