python 2.7 - cv2 getTrackbarPos not working -
working opencv3.1 cv2 in python 2.7.12. problem i'm having right that, though following multiple sets of instructions seem use same setup myself or @ least similar one. going these 2 examples: opencv.org , codegenerater's blogspot tutorial. did not forget make callback function or use cv2.gettrackbarpos
. feel there must wrong specific order in or image display loop. here have, diaplays image initial trackbar threshold, not update image trackbar callback:
import cv2 #write simple callback function pass trackbar position *arg def callback(*arg): pass #create display window image cv2.namedwindow('frame') #read in image img = cv2.imread(r'/home/usr/documents/aerial-images/images_with_targets/flight_4/target_10.jpg',0) #instantiate trackbar goes in our named window , uses callback function cv2.createtrackbar('thresh2','frame',5,15,callback) #initialize thresholds thresh1=11 thresh2=5 #loop runs until escape key causes break while(true): #sets threshold 2 trackbar position thresh2=cv2.gettrackbarpos('thresh2','frame') #apply laplacian filter ehance edge gradients th = cv2.laplacian(img,cv2.cv_8uc1) #binarize image adaptive threshold th = cv2.adaptivethreshold(th,255,cv2.adaptive_thresh_gaussian_c,cv2.thresh_binary_inv,thresh1,thresh2) #show filtered image cv2.imshow('frame',th) #waits escape key breaks out of loop if cv2.waitkey(0) & 0xff == ord('q'): break #close our display window cv2.destroyallwindows()
the answer quite simple really. upon viewing older code wrote, realized needed change wait key 0 1:
if cv2.waitkey(0) & 0xff == ord('q'): break
became
if cv2.waitkey(1) & 0xff == ord('q'): break
what did not see forgot camel case cv2.destroyallwindows
, made me think display loop still running when not.
Comments
Post a Comment