python opencv 軌跡欄作為調色盤

2022-06-10 16:09:09 字數 1661 閱讀 7685

在這裡,我們將建立乙個簡單的應用程式,以顯示您指定的顏色。您有乙個顯示顏色的視窗,以及三個用於指定b、g、r顏色的跟蹤欄。滑動軌跡欄,並相應地更改視窗顏色。預設情況下,初始顏色將設定為黑色。

對於cv.gettrackbarpos()函式,第乙個引數是軌跡欄名稱,第二個引數是它附加到的視窗名稱,第三個引數是預設值,第四個引數是最大值,第五個是執行的**函式每次跟蹤欄值更改。**函式始終具有預設引數,即軌跡欄位置。在我們的例子中,函式什麼都不做,所以我們簡單地通過。

軌跡欄的另乙個重要應用是將其用作按鈕或開關。預設情況下,opencv不具有按鈕功能。因此,您可以使用軌跡欄獲得此類功能。在我們的應用程式中,我們建立了乙個開關,只有在該開關為on的情況下,該應用程式才能在其中執行,否則螢幕始終為黑色。

import

numpy as np

import

cv2 as cv

defnothing(x):

pass

#建立乙個黑色的影象,乙個視窗

img = np.zeros((300,512,3), np.uint8)

cv.namedwindow(

'image')

#建立顏色變化的軌跡欄

cv.createtrackbar('

r','

image

',0,255,nothing)

cv.createtrackbar('g

','image

',0,255,nothing)

cv.createtrackbar('b

','image

',0,255,nothing)

#為 on/off 功能建立開關

switch = '

0 : off \n1 : on

'cv.createtrackbar(switch,

'image

',0,1,nothing)

while(1):

cv.imshow(

'image

',img)

k = cv.waitkey(1) & 0xff

if k == 27:

break

#得到四條軌跡的當前位置

r = cv.gettrackbarpos('

r','

image')

g = cv.gettrackbarpos('

g','

image')

b = cv.gettrackbarpos('

b','

image')

s = cv.gettrackbarpos(switch,'

image')

if s ==0:

img[:] =0

else

: img[:] =[b,g,r]

cv.destroyallwindows()

執行之後:

然後將調色盤開啟:滑動到on,再選擇紅色:

下面顏色也變了,挺有意思的。 

軌跡預處理(軌跡壓縮)

在介紹兩類壓縮演算法之前,本文先介紹兩種 距離度量 方法 第一種距離度量方法是 垂直的歐幾里得距離,如圖b所示,p1 p7 p12作為壓縮後的點。垂直度量 則為做垂線計算。第二種距離度量方法是 時間同步的歐幾里得距離,如圖a所示,p1 p7 p12作為壓縮後的點。p1與p2之間是3秒,p2與p3之間...

軌跡預處理(軌跡分段)

在軌跡聚類,分類之前,我們通常要將軌跡分段。第一種軌跡分段方法是利用 時間間隔 分段。具體來說,如果兩個軌跡點之間的時間差較大,則進行分段 另外一種則是按照時間段將軌跡分段。第二種方法是基於軌跡的形狀。具體來說,基於軌跡點方向的角度變化大小分段,如果變化超過一定的閾值,則分段 另外一種方法 線簡化 ...

軌跡跟蹤 二維軌跡跟蹤

注意 3 注意光線,不要太暗了,也不要太刺眼,有光圈亮點。前景跟蹤演算法過程 首先都是檢視文獻來著,大概看了20多篇文獻資料。其實起指導作用的文獻還是只有那麼幾篇。我就列出來 1 zhang z.a flexible new technique for camera calibration j tr...