Mahotas - Speeded-Up Robust Features

Last Updated : 23 Apr, 2021

In this article we will see how we can get the speeded up robust features of image in mahotas. In computer vision, speeded up robust features (SURF) is a patented local feature detector and descriptor. It can be used for tasks such as object recognition, image registration, classification, or 3D reconstruction. It is partly inspired by the scale-invariant feature transform (SIFT) descriptor. For this we are going to use the fluorescent microscopy image from a nuclear segmentation benchmark. We can get the image with the help of command given below
 

mahotas.demos.nuclear_image()


Below is the nuclear_image 
 


In order to do this we will use surf.surf method 
 

Syntax : surf.surf(img)
Argument : It takes image object as argument
Return : It returns numpy.ndarray 
 


Example 1 : 
 

Python3
# importing various libraries
import mahotas
import mahotas.demos
import mahotas as mh
import numpy as np
from pylab import imshow, show
from mahotas.features import surf

# loading nuclear image
nuclear = mahotas.demos.nuclear_image()

# filtering image
nuclear = nuclear[:, :, 0]

# adding gaussian filter
nuclear = mahotas.gaussian_filter(nuclear, 4)

# showing image
print("Image")
imshow(nuclear)
show()


# getting Speeded-Up Robust Features
spoints = surf.surf(nuclear)
print("No of  points: {}".format(len(spoints)))

Output : 
 


 

No of  points: 217


Example 2 : 
 

Python3
# importing required libraries
import numpy as np
import mahotas
from pylab import imshow, show
from mahotas.features import surf
 
# loading image
img = mahotas.imread('dog_image.png')

   
# filtering the image
img = img[:, :, 0]
    
# setting gaussian filter
gaussian = mahotas.gaussian_filter(img, 5)
 
# showing image
print("Image")
imshow(gaussian)
show()


# getting Speeded-Up Robust Features
spoints = surf.surf(gaussian)
print("No of  points: {}".format(len(spoints)))

Output : 
 


 

No of  points: 364


 

Comment