wk-labs/lab5/main.py
2021-11-29 18:02:09 +01:00

34 lines
1.0 KiB
Python

import cv2 as cv
import numpy as np
def click_event(event, x, y, flags, params):
if event == cv.EVENT_LBUTTONDOWN:
# print(x, ' ', y)
cv.circle(img, (int(x), int(y)), 10, [0, 255, 255], -1)
cv.imshow('image', img)
vertexes.append([x, y])
if len(vertexes) == 4:
add_img_in_area()
def add_img_in_area():
dst_points = np.array(vertexes, dtype=float)
src_points = np.array([[0, 0], [bakery_w, 0], [bakery_w, bakery_h], [0, bakery_h]], dtype=float)
mat_h = cv.findHomography(src_points, dst_points)[0]
image_transformed_h = cv.warpPerspective(bakery, mat_h, (img_w, img_h))
cv.imshow('image', image_transformed_h)
vertexes.clear()
if __name__ == '__main__':
vertexes = []
img = cv.imread('../img/billboards.jpg')
bakery = cv.imread('../img/bakery.jpg')
bakery_h, bakery_w = bakery.shape[0:2]
img_h, img_w = img.shape[0:2]
cv.imshow('image', img)
cv.setMouseCallback('image', click_event)
cv.waitKey(0)
cv.destroyAllWindows()