You can do similarity transformation using OpenCV Python by following the given steps. I highly recommend you get the “Computer Vision: Models, Learning, and Inference Book” to learn Computer Vision.
Import the required libraries. If OpenCV is not installed in your system then first install it using This Method.
import cv2 #cv2 is used for OpenCV library import numpy as np
Now Read the Image. The image should be in the current working directory. Otherwise, mention the location of the image.
Now resize/scale the image according to your requirement.
resize = cv2.resize(img, None, fx = 0.5, fy= 0.6, interpolation = cv2.INTER_LINEAR)
Now make a matrix for rotation and translation. You can change the values according to rotation angle and translation. The value of Cos30 degree is 0.86 and the value of Sin30 degree is 0.5. The translation value along the x-axis is 200 and along the y-axis is 20.
matrix = np.float32([[0.86,-0.5,200],[0.5,0.86,20]])
Now apply the above matrix to the image and use the method cv2.warpAffine.
similarity = cv2.warpAffine(resize,matrix,(img.shape+100,img.shape+100))
Now display both images.
cv2.imshow('Cat',img) cv2.imshow('Similarity Transformation',similarity) cv2.waitKey(0) cv2.destroyAllWindows()