Files
open-cv-experiment/test/2024,9,23/homework.py
T
2024-09-23 23:00:38 +08:00

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)