话不多说,上代码,看结果。第一个结果很失败,很失败。在写了“014-OpenCV调用滑动条补充”后想明白了,又重写了一下,最后一个结果符合我的设想。
import cv2
import numpy as np
def putText(Size):
global img, font
cv2.putText(img, '123', (10, 320), font, Size, [1, 123, 234], 3, cv2.LINE_AA)
img = np.zeros((400, 400, 3), np.uint8)
cv2.namedWindow('img')
cv2.createTrackbar('Size', 'img', 0, 10, putText)
font = cv2.FONT_HERSHEY_COMPLEX
while True:
cv2.imshow('img', img)
if cv2.waitKey(1) & 0xFF == 27:
break
cv2.destroyAllWindows()
结果如下图。
import cv2
import numpy as np
def word_Size(x):
global Size
Size = cv2.getTrackbarPos('Size', 'img')
def putText(event, x, y, falgs, param):
global img, font
if event == cv2.EVENT_LBUTTONDOWN:
img = temp.copy()
cv2.putText(img, '123', (x, y), font, Size, [1, 123, 234], 1, cv2.LINE_AA)
img = np.zeros((400, 400, 3), np.uint8)
temp = img.copy()
cv2.namedWindow('img')
cv2.createTrackbar('Size', 'img', 3, 10, word_Size)
cv2.setMouseCallback('img', putText)
font = cv2.FONT_HERSHEY_COMPLEX
while True:
cv2.imshow('img', img)
if cv2.waitKey(1) & 0xFF == 27:
break
cv2.destroyAllWindows()
结果如下图,程序有个小BUG,出现窗口后如果不调整一下滑动条,鼠标点击会报错,调整滑动条之后随意鼠标点击,不会出错。
我的预想效果是通过滑动条可以调整字体的大小,鼠标点击确定文字的位置,而且再次点击会消除上次出现的文字。上面的程序仅能在固定位置出现文字,可以调整文字大小,但不能消除,算是一个失败程序。