Trackbar回调蟒蛇openCV

问题描述:

我一直在试图有一个简单的窗口与跟踪栏设置二值化的阈值。
我已经使用了一段时间循环的跟踪条的getTrackbarPos方法见过几个例子,但使用不是很多的回调函数,这是我想用(或至少明白为什么getTrackbarPos越好)
我居然看到了阈值的当我移动滑块时,图像几乎是瞬间被原始图像所取代。 我也尝试在回调函数中使用global ImageBin,但它没有帮助。 有人有一个建议,或可以重新路线我的一些类似的问题? 感谢Trackbar回调蟒蛇openCV

import cv2 

# callback function 
def Update(value): 
    print value 
    ret,ImageBin = cv2.threshold(Image,value,255,cv2.THRESH_BINARY) 
    cv2.imshow('Fenetre',ImageBin) 

# window 
cv2.namedWindow('Fenetre',cv2.WINDOW_GUI_NORMAL) 

# Trackbar 
Slider = cv2.createTrackbar('Threshold','Fenetre',0,255,Update) 

# Open image 
Home = r'C:\Users\Laurent Thomas\Documents\DataSet\170922110941_BISCHOFF_DORSAL_2ndGO' 
Image = cv2.imread(Home + '\WE00001---A001--PO01--LO001--CO6--SL001--PX32500--PW0040--IN0020--TM245--X014262--Y011163--Z216816--T1373979007.tif',0) 

# Initialise first view as the normal image 
ImageBin = Image[:] 


while(1): 
    cv2.imshow('Fenetre',ImageBin) 
    k = cv2.waitKey(1) & 0xFF 
    if k == 27: 
     break 


cv2.destroyAllWindows() 

修改Update功能如下:

# callback function 
def Update(value): 
    global ImageBin 
    print (value) 
    ret,ImageBin = cv2.threshold(Image,value,255,cv2.THRESH_BINARY) 
+0

好了,它的工作表示感谢。这很奇怪,我昨天做了这件事,但它不工作。也许有些人退出并重新启动需要或仍然在记忆中的变数......谁知道 – Jindil