Note
Go to the end to download the full example code. or to run this example in your browser via Binder
CENSURE feature detector#
The CENSURE feature detector is a scale-invariant center-surround detector (CENSURE) that claims to outperform other detectors and is capable of real-time implementation.
from skimage import data
from skimage import transform
from skimage.feature import CENSURE
from skimage.color import rgb2gray
import matplotlib.pyplot as plt
img_orig = rgb2gray(data.astronaut())
tform = transform.AffineTransform(
scale=(1.5, 1.5), rotation=0.5, translation=(150, -200)
)
img_warp = transform.warp(img_orig, tform)
detector = CENSURE()
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(12, 6))
detector.detect(img_orig)
ax[0].imshow(img_orig, cmap=plt.cm.gray)
ax[0].scatter(
detector.keypoints[:, 1],
detector.keypoints[:, 0],
2**detector.scales,
facecolors='none',
edgecolors='r',
)
ax[0].set_title("Original Image")
detector.detect(img_warp)
ax[1].imshow(img_warp, cmap=plt.cm.gray)
ax[1].scatter(
detector.keypoints[:, 1],
detector.keypoints[:, 0],
2**detector.scales,
facecolors='none',
edgecolors='r',
)
ax[1].set_title('Transformed Image')
for a in ax:
a.axis('off')
plt.tight_layout()
plt.show()
Total running time of the script: (0 minutes 2.113 seconds)