直銷購(gòu)物網(wǎng)站開發(fā)搜狗搜索引擎優(yōu)化
Python學(xué)習(xí)筆記第七十九天
- OpenCV軌跡欄
- cv.createTrackbar
- cv.getTrackbarPos
- 兩者合并運(yùn)用
- 后記
OpenCV軌跡欄
cv.getTrackbarPos
和 cv.createTrackbar
是 OpenCV 庫(kù)中用于創(chuàng)建和獲取跟蹤條位置的函數(shù)。這些函數(shù)通常用于在視頻處理或圖像處理應(yīng)用程序中創(chuàng)建用戶界面,以允許用戶交互地調(diào)整某些參數(shù)或控制某些功能。cv.getTrackbarPos
和 cv.createTrackbar
在滑動(dòng)條在許多計(jì)算機(jī)視覺任務(wù)中很有用,特別是當(dāng)你想要手動(dòng)設(shè)置某個(gè)參數(shù)值時(shí)。
cv.createTrackbar
cv.createTrackbar這個(gè)函數(shù)用于在窗口上創(chuàng)建一個(gè)滑動(dòng)條。
參數(shù)說(shuō)明:
- trackbarname:滑動(dòng)條的名稱。
- winname:滑動(dòng)條所屬的窗口名稱。
- val:滑動(dòng)條的初始位置。
- maxval:滑動(dòng)條的最大位置值。
- onChange:一個(gè)回調(diào)函數(shù),當(dāng)滑動(dòng)條位置改變時(shí)被調(diào)用。
import cv2# 創(chuàng)建窗口
cv2.namedWindow('Trackbar Window')# 創(chuàng)建跟蹤條,參數(shù)包括:
# 1. 窗口名稱
# 2. 跟蹤條名稱
# 3. 默認(rèn)位置(0-100)
# 4. 最大位置(0-100)
# 5. 回調(diào)函數(shù)(可選)
trackbar = cv2.createTrackbar('Trackbar', 'Trackbar Window', 0, 100, trackbar_callback)# 主循環(huán),等待用戶操作
while True:# 在這里添加其他代碼,例如讀取圖像或視頻幀等pass
cv.getTrackbarPos
在上面的例子中,你可以看到 cv2.createTrackbar
創(chuàng)建了一個(gè)名為 “Trackbar” 的跟蹤條。你可以使用 cv2.getTrackbarPos
來(lái)獲取當(dāng)前跟蹤條的位置:
參數(shù)說(shuō)明:
- trackbarname:滑動(dòng)條的名稱。
- winname:滑動(dòng)條所屬的窗口名稱。
def trackbar_callback(x):# 在這里添加當(dāng)跟蹤條位置改變時(shí)要執(zhí)行的代碼pass# ...(省略上面的代碼)...# 在回調(diào)函數(shù)中獲取當(dāng)前跟蹤條位置
current_pos = cv2.getTrackbarPos('Trackbar', 'Trackbar Window')
在這個(gè)例子中,trackbar_callback
是一個(gè)可選的回調(diào)函數(shù),它會(huì)在用戶移動(dòng)跟蹤條時(shí)被調(diào)用。在這個(gè)回調(diào)函數(shù)中,你可以使用 cv2.getTrackbarPos
來(lái)獲取當(dāng)前跟蹤條的位置。
兩者合并運(yùn)用
import cv2 as cv
import numpy as np # 初始化一個(gè)窗口
window_name = 'Trackbar Demo'
cv.namedWindow(window_name, cv.WINDOW_NORMAL) # 創(chuàng)建一個(gè)滑動(dòng)條,位置在 (10, 50),名字為 'Slider',默認(rèn)值是 0,范圍是 0 到 100
trackbar = cv.createTrackbar('Slider', window_name, 0, 100, None) while True: # 獲取滑動(dòng)條的當(dāng)前位置 position = cv.getTrackbarPos(trackbar) print(f"Slider position: {position}") # 為了可視化滑動(dòng)條的效果,我們可以根據(jù)其位置改變圖像的某些屬性。這里我們簡(jiǎn)單地用一個(gè)灰度圖像來(lái)演示。 image = np.zeros((500, 500), dtype=np.uint8) cv.rectangle(image, (250, 0), (250 + int(position), 500), (255, 255, 255), -1) cv.imshow(window_name, image) key = cv.waitKey(1) & 0xFF # 按任意鍵退出循環(huán) if key == ord('q'): # 按 'q' 退出程序 break cv.destroyAllWindows()
后記
今天學(xué)習(xí)的是Python OpenCV軌跡欄學(xué)會(huì)了嗎。 今天學(xué)習(xí)內(nèi)容總結(jié)一下:
- cv.createTrackbar
- cv.getTrackbarPos