my teacher gave us the following exercise:
At the moment the only process I made is to get the Harris Corners of both images using cv2.cornerHarris() and place the pictures next to each other.
Now I have no idea how to get the corners itself and an area around them to generate a template which could be use for template matching.
I hope if I get this trick I may be able to solve the rest of the exercise. Maybe some of you could help me? A short explanation on how it is working would be very kindful, so that I may learn a bit more :)
Here is my current code:
import cv2
import numpy as np
churchLeft = cv2.imread("./Church/church_left.png")
churchRight = cv2.imread("./Church/church_right.png")
def doHarris(img):
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)
dst = cv2.cornerHarris(gray, 2, 3, 0.01)
# result is dilated for marking the corners, not important
dst = cv2.dilate(dst, None)
# Threshold for an optimal value, it may vary depending on the image.
img[dst > 0.01 * dst.max()] = [0, 0, 255]
return img
churchLeftHarris = doHarris(churchLeft)
churchRightHarris = doHarris(churchRight)
hor = np.hstack((churchLeftHarris, churchRightHarris))
cv2.imshow('test', hor)
while (1):
k = cv2.waitKey(1) & 0xFF
if k == 27:
break
You can try my code bellow: