OpenCV-Python教程:6.跟蹤條作為彩色調色板

這里我們創建一個簡單的應用來顯示你指定的顏色。你有一個窗口來顯示顏色,三個跟蹤條來指定B, G, R顏色。你跟蹤條到指定的位置,窗口顏色相應的變化。默認情況下初始顏色是黑色。

對于cv2.getTrackbarPos()函數, 第一個參數是跟蹤條名字,第二個是要附著的窗口名字,第三個參數是默認值,第四個是最大值第五個參數是回調函數,指明當跟蹤條的值變化時要執行的操作?;卣{函數有默認參數,是拖動條位置,在我們這,函數什么也不做,所以我們不管。

另一個重要的應用是我們把跟蹤條當做按鈕或開關,OpenCV默認沒有按鈕功能。所以你可以讓跟蹤條具備這種功能。在我們的應用里,我們創建了一個開關,只有開關是開的時候應用才工作,否則就一直是黑屏。

import cv2
import numpy as np

def nothing(x):
? ? pass

# Create a black image, a window
img = np.zeros((300, 512, 3), np.uint8)
cv2.namedWindow('image')

# create trackbars for color change
cv2.createTrackbar('R', 'image', 0, 255, nothing)
cv2.createTrackbar('G', 'image', 0, 255, nothing)
cv2.createTrackbar('B', 'image', 0, 255, nothing)

# create switch for ON/OFF functionality
switch='0 : OFF\n1 : ON'
cv2.createTrackbar(switch, 'image', 0, 1, nothing)

while(1):
? ? cv2.imshow('image', img)
? ? k = cv2.waitKey(1) & 0xFF
? ? if k == 27:
? ? ? ? break

? ? # get current positions of four trackbars
? ? r = cv2.getTrackbarPos('R', 'image')
? ? g = cv2.getTrackbarPos('G', 'image')
? ? b = cv2.getTrackbarPos('B', 'image')
? ? s = cv2.getTrackbarPos(switch, 'image')

? ? if s == 0:
? ? ? ? img[:] = 0
? ? else:
? ? ? ? img[:] = [b, g, r]

cv2.destroyAllWindows()

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容