首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Trackbar回调python openCV

Trackbar回调python openCV
EN

Stack Overflow用户
提问于 2017-10-11 14:02:36
回答 1查看 2.4K关注 0票数 1

我一直试图有一个简单的窗口与轨迹杆设置的阈值,为二进制化。

我在while循环中看到了使用trackbar的getTrackbarPos方法的几个例子,但使用回调函数的例子不多,我想使用回调函数(或者至少理解为什么getTrackbarPos更好)。

当我移动滑块时,我实际上看到了阈值图像,但是它几乎是瞬间被原始图像所取代的。我还尝试在回调函数中使用global ImageBin,但没有帮助。有人有建议或者能把我改到类似的问题上吗?谢谢

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-11 14:14:13

修改Update函数如下:

代码语言:javascript
复制
# callback function
def Update(value):
    global ImageBin
    print (value)
    ret,ImageBin = cv2.threshold(Image,value,255,cv2.THRESH_BINARY)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46690247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档