Visualizing OpenCV KeyPoints
Yes, there is the method to perform your task. As says in documentation
For each keypoint the circle around keypoint with keypoint size and orientation will be drawn
If you are using Java, you can simply specify the type of keypoints:
Features2d.drawKeypoints(image1, keypoints1, imageOut2,new Scalar(2,254,255),Features2d.DRAW_RICH_KEYPOINTS);
In C++:
drawKeypoints( img_1, keypoints_1, img_keypoints_1, Scalar::all(-1), DrawMatchesFlags::DRAW_RICH_KEYPOINTS );
I had a similair problem and wanted to customize the points that are drawn, decided to share my solution because I wanted to alter the shape of the points drawn.
You can alter the line with cv2.circle with what you want. im is the input image you want the points to be drawn in, keyp are the keypoints you want to draw, col is the line color, th is the thickness of the circle edge.
import cv2
import numpy as np
import matplotlib.pyplot as plt
def drawKeyPts(im,keyp,col,th):
for curKey in keyp:
x=np.int(curKey.pt[0])
y=np.int(curKey.pt[1])
size = np.int(curKey.size)
cv2.circle(im,(x,y),size, col,thickness=th, lineType=8, shift=0)
plt.imshow(im)
return im
imWithCircles = drawKeyPts(origIm.copy(),keypoints,(0,255,0),5)