OpenCV也有與PYQT類似的小部件,例如滑塊slider。OpenCV可以用與PYQT類似的“信號與槽”方法,也可以在函數中直接查詢小部件的值。
import cv2
import numpy as npcv2.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') * 2cv2.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()
運行截圖: