首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Trackbar不使用python

Trackbar不使用python
EN

Stack Overflow用户
提问于 2014-05-20 23:24:33
回答 1查看 1.7K关注 0票数 0

我试图使用一组跟踪条来控制视频捕获的阈值,在这里捕获的每一帧的HSV代码如下:

代码语言:javascript
复制
import numpy as np
import cv2 
h_Min=0
h_Max=256
s_Min=0
s_Max=256
v_Min=0
v_Max=256
Frame_Width=640
Frame_Hight=480
Max_DetObj=50
Min_ObjArea=40*40
Max_ObjArea=Frame_Width*Frame_Hight/1.5
def nothing(x):
    pass

def Trackbars():
    cv2.namedWindow('Trackbars',cv2.WINDOW_AUTOSIZE)
    cv2.createTrackbar('H_Min','Trackbars',h_Min,h_Max,nothing)
    cv2.createTrackbar('H_Max','Trackbars',h_Max,h_Max,nothing)
    cv2.createTrackbar('S_Min','Trackbars',s_Min,s_Max,nothing)
    cv2.createTrackbar('S_Max','Trackbars',s_Max,s_Max,nothing)
    cv2.createTrackbar('V_Min','Trackbars',v_Min,v_Max,nothing)
    cv2.createTrackbar('V_Max','Trackbars',v_Max,v_Max,nothing)
def Pics():
calibMod=True
if(calibMod):
    Trackbars()
vc = cv2.VideoCapture(2)
retVal, frame = vc.read();

while True :
    if frame is not None:
        hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
        if (calibMod==True):
            #ret,threshold=cv2.threshold(hsv,0,255,0)
            hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
            threshold=cv2.inRange(hsv,(h_Min,s_Min,v_Min),(h_Max,s_Max,v_Max))
            morphop(threshold)
            cv2.imshow('threshold image',threshold)
            trackObj(threshold,hsv,frame)
        cv2.imshow('camera',frame)
        #cv2.imshow('threshold',threshold)
        cv2.imshow('hsv',hsv)
   rval, frame = vc.read()
    if cv2.waitKey(1) & 0xFF == 27:
        break
cv.DestroyAllWindows()

问题是,所有的轨迹栏都不起作用,当我改变它的值时,在阈值窗口上没有什么变化,我能做什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-21 06:36:58

您要么需要提供一个有效的回调函数( you ()),那么..不多..。)

或显式查询该值:

代码语言:javascript
复制
 if (calibMod==True):
     #ret,threshold=cv2.threshold(hsv,0,255,0)

     hue_min = cv2.getTrackbarPos('H_Min','Trackbars')
     hue_max = cv2.getTrackbarPos('H_Max','Trackbars')
     sat_min = cv2.getTrackbarPos('S_Min','Trackbars')
     sat_max = cv2.getTrackbarPos('S_Max','Trackbars')
     val_min = cv2.getTrackbarPos('V_Min','Trackbars')
     val_max = cv2.getTrackbarPos('V_Max','Trackbars')

     hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
     threshold=cv2.inRange(hsv,(hue_min,sat_min,val_min),(hue_max,sat_max,val_max))
     ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23771577

复制
相关文章

相似问题

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