Python | Determine the angle of an image using OpenCV



Let`s see how to determine the angle in an image.

cv2.goodFeaturesToTrack () finds the N strongest corners of an image using the Shi-Tomasi method. Note that the image must be a grayscale image. Specify the number of corners you want to find and the quality level (which is in the range 0-1). This denotes the minimum quality of the corner, below which everyone deviates. Then specify the minimum Euclidean distance between the detected corners.

Syntax: cv2.goodFeaturesToTrack (image, maxCorners, qualityLevel, minDistance [, corners [, mask [, blockSize [, useHarrisDetector [, k]]]]])

Image before corner detection:

# import the desired library

import numpy as np

import cv2

from matplotlib import pyplot as plt

  

  
# read image

img = cv2.imread ( ` corner1.png` )

 
# convert image to gray

gray = cv2.cvtColor (img, cv2.COLOR_BGR2GRAY)

 
# define corners using goodFeaturesToTrack.

corners = cv2.goodFeaturesToTrack (gray, 27 , 0.01 , 10 ) < / code>

corners = np.int0 (corners)

 
# we iterate over every corner
# make a circle at every point we think of as an angle.

for i in corners:

  x, y = i.ravel ()

cv2.circle (img, (x, y), 3 , 255 , - 1 )

  
plt.imshow (img) , plt.show ()

Image after detection angle —