文章標題

python opencv trackbar 調整參數

由於最近需要利用到Python 版本的opencv 但是之前又沒有接觸過 這個,在此紀念下利用 trackbar 去調整參數的方法。

mport cv2
import numpy as np
#optional argument
def nothing(x):
    pass

cv2.namedWindow('image')

#easy assigments
hh='Hue High'
hl='Hue Low'
sh='Saturation High'
sl='Saturation Low'
vh='Value High'
vl='Value Low'

cv2.createTrackbar(hl, 'image',0,179,nothing)
cv2.createTrackbar(hh, 'image',0,179,nothing)
cv2.createTrackbar(sl, 'image',0,255,nothing)
cv2.createTrackbar(sh, 'image',0,255,nothing)
cv2.createTrackbar(vl, 'image',0,255,nothing)
cv2.createTrackbar(vh, 'image',0,255,nothing)

while(1):

    frame = cv2.imread("55.png")
    frame=cv2.GaussianBlur(frame,(5,5),0)
    #convert to HSV from BGR
    hsv=cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)


    #read trackbar positions for all
    hul=cv2.getTrackbarPos(hl, 'image')
    huh=cv2.getTrackbarPos(hh, 'image')
    sal=cv2.getTrackbarPos(sl, 'image')
    sah=cv2.getTrackbarPos(sh, 'image')
    val=cv2.getTrackbarPos(vl, 'image')
    vah=cv2.getTrackbarPos(vh, 'image')

    print "hul is :",hul
    print "huh is :",huh
    print "sal is:",sal
    print "sah is:",sah
    print "val is:",val
    print "vah is:",vah

    #make array for final values
    HSVLOW=np.array([hul,sal,val])
    HSVHIGH=np.array([huh,sah,vah])

    #apply the range on a mask
    mask = cv2.inRange(hsv,HSVLOW, HSVHIGH)
    res = cv2.bitwise_and(frame,frame, mask =mask)

    cv2.imshow('mask',mask)
    cv2.imshow('dst', res)
    cv2.imshow('yay', frame)

    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break


cv2.destroyAllWindows()

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章