OpenCV也有与PYQT类似的小部件,例如滑块slider。OpenCV可以用与PYQT类似的“信号与槽”方法,也可以在函数中直接查询小部件的值。
import cv2
import numpy as np
cv2.namedWindow('Show1')
image = np.zeros((100, 400, 3), np.uint8) # 创建一个空白内容的图像
def slot(Slider_value): # 类似于PYQT的“槽函数”
image[:] = [0, 0, 0] # 清空图像
cv2.putText(image, str(Slider_value), (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
cv2.imshow('Show1', image)
querying()
def querying(): # 查询的方式
image[:] = [0, 0, 0] # 清空图像
Slider_value = cv2.getTrackbarPos('Slider', 'Show1') * 2
cv2.putText(image, str(Slider_value), (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
cv2.imshow('Show2', image)
cv2.createTrackbar('Slider', 'Show1', 1, 20, slot) # 类似于PYQT的连接connect(),当Slider的值变化后,调用槽函数slot(),并传递Slider的值到槽函数
cv2.waitKey(0)
cv2.destroyAllWindows()
运行截图: