48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
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)
|