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