2016-09-07 4 views
0

python에서 opencv3.1로 cv2 작업 2.7.12. 제가 지금 당장 가지고있는 문제는, 제가 여러 가지 지침을 따르고 있지만, 모두 나 자신과 동일한 설정을 사용하거나 최소한 비슷한 설정을 사용하는 것 같습니다. 나는이 두 가지 예를 중심으로 가고있다 : openCV.orgCodeGenerater's Blogspot tutorial. 나는 콜백 함수를 만들거나 cv2.getTrackbarPos을 사용하는 것을 잊지 않았다. 이미지 디스플레이 루프에서 특정 순서로 잘못된 것이 있어야한다고 생각합니다. 여기 그것은 초기 트랙 바 임계 값으로 이미지를 diaplays, 내가 무엇을 가지고 있지만, 트랙 바 콜백와 이미지를 업데이트하지 않습니다 :cv2 getTrackbarPos가 작동하지 않습니다.

import cv2 


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

#create display window for 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 that goes in our named window and uses callback function 
cv2.createTrackbar('thresh2','frame',5,15,callback) 

#initialize thresholds 
thresh1=11 
thresh2=5 

#loop really just runs until the escape key causes a break 
while(True): 

    #sets threshold 2 to trackbar position 
    thresh2=cv2.getTrackbarPos('thresh2','frame') 
    #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 
    cv2.imshow('frame',th) 
    #waits for escape key then breaks out of loop 
    if cv2.waitKey(0) & 0xFF == ord('q'): 
     break 


#close our display window  
cv2.destroyallwindows() 

답변

0

는 대답은 정말 아주 간단합니다.

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

가 나는 낙타 케이스 cv2.destroyAllWindows하는 것을 잊었다이었다 보지 않았다 어떤

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

되었다 : 내가 쓴 일부 오래된 코드를보고하면, 나는 0에서 1에서 대기 키를 변경하는 데 필요한 실현 , 그것은 내가 정말로 그렇지 않을 때 디스플레이 루프가 여전히 실행 중이다라고 생각하게했다.

관련 문제