import cv2 as cv import numpy as np # 1 img = cv.imread("sample.jpg", cv.IMREAD_GRAYSCALE) img2 = cv.imread('sample.jpg', cv.IMREAD_GRAYSCALE) # 2 def draw_circle(event, x, y, flags, param): if event == cv.EVENT_LBUTTONDOWN: cv.circle(img, (x, y), 10, 0, -1) # 4 alpha = 0.3 beta = 80 def updateAlpha(x): global alpha, img, img2 alpha = cv.getTrackbarPos('Alpha', 'modify_sample') alpha = alpha * 0.01 img = np.uint8(np.clip((alpha * img2 + beta), 0, 255)) def updateBeta(x): global beta, img, img2 beta = cv.getTrackbarPos('Beta', 'modify_sample') img = np.uint8(np.clip((alpha * img2 + beta), 0, 255)) # 3 cv.namedWindow('modify_sample') cv.createTrackbar('Alpha', 'modify_sample', 0, 300, updateAlpha) cv.createTrackbar('Beta', 'modify_sample', 0, 255, updateBeta) cv.setTrackbarPos('Alpha', 'modify_sample', 100) cv.setTrackbarPos('Beta', 'modify_sample', 10) cv.setMouseCallback('modify_sample', draw_circle) while (1): cv.imshow('modify_sample', img) pressedKey = cv.waitKey(5) # 5 if pressedKey == ord('q'): break if pressedKey == ord('s'): cv.imwrite('modified_sample.jpg', img)