cv2 getTrackbarPos not working


Working with opencv3.1 as cv2 in python 2.7.12. The problem I'm having right now is that, though I am following multiple sets of instructions that all seem to use the same setup as myself or at least a very similar one. I am mainly going by these two examples: and CodeGenerater's Blogspot tutorial. I did not forget to make a callback function or to use cv2.getTrackbarPos. I feel there must be something wrong with the specific order I do it in or the image display loop. Here is what I have, It diaplays the image with the initial trackbar threshold, but does not update the image with the trackbar callback:

import cv2

#write simple callback function to pass trackbar position as *arg    
def callback(*arg): 

#create display window for image

#read in image
img = cv2.imread(r'/home/Usr/Documents/Aerial-Images/images_with_targets/Flight_4/target_10.jpg',0)

#instantiate trackbar that goes in our named window and uses callback function

#initialize thresholds

#loop really just runs until the escape key causes a break

    #sets threshold 2 to trackbar position
    #apply laplacian filter to ehance edge gradients
    th = cv2.Laplacian(img,cv2.CV_8UC1)
    #binarize image with adaptive threshold
    th = cv2.adaptiveThreshold(th,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV,thresh1,thresh2) 

    #show filtered image
    #waits for escape key then breaks out of loop
    if cv2.waitKey(0) & 0xFF == ord('q'):

#close our display window     


The answer was quite simple really. Upon viewing some older code I wrote, I realized I needed to change the wait key from 0 to 1:

if cv2.waitKey(0) & 0xFF == ord('q'):


if cv2.waitKey(1) & 0xFF == ord('q'):

What I did not see was that I forgot to Camel Case cv2.destroyAllWindows, which made me think the display loop was still running when it really was not.

the problem is caused because you have not given the super user permission to the system. in order to make any changes into the system you should go to super user mode, for that you have to type the code as

sudo pip install virtualenv

it will help you out

This video can help you solving your question :)
By: admin