2014-12-15 3 views
-3

저는 컴퓨터 비전 프로젝트에 opencv, numpy 및 python을 사용하고 있습니다. 이 튜토리얼에서는 http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_features_harris/py_features_harris.html 을 정확히 따라 갔으며 (코드에서 명백히 드러나는 몇 가지 사소한 변화는 제외) 정확하게 따라 갔다. 나는 왜이 오류 (아래)를 얻었는지 잘 모르겠다. 그리고 이것에 대한 약간의 통찰력을 정말로 고맙게 생각할 것이다. 감사!python : 전역 이름이 정의되지 않았습니다.

코드 :

def applyHarrisCornerDetection(): 
    image1 = cv2.imread('pictures/board1.png') 
    image2 = cv2.imread('pictures/board2.png') 

    gray1 = cv2.cvtColor(image1,cv2.COLOR_BGR2GRAY) 
    gray2 = cv2.cvtColor(image2,cv2.COLOR_BGR2GRAY) 

    gray1 = np.float32(gray1) 
    gray2 = np.float32(gray2) 

    dst1 = cv2.cornerHarris(gray1,2,3,0.04) 
    dst2 = cv2.cornerHarris(gray2,2,3,0.04) 

    dst1 = cv2.dilate(dst1,None) 
    dst2 = cv2.dilate(dst2,None) 

    img1[dst1>0.01*dst1.max()]=[0,0,255] 
    img2[dst2>0.01*dst2.max()]=[0,0,255] 

    cv2.imshow('dst1',img1) 
    cv2.imshow('dst2',img2) 

    if cv2.waitKey(0) & 0xff == 27: 
     cv2.destroyAllWindows() 

오류 : enter image description here

+0

귀하의 코드는 'img1'이라는 변수를 정의하지 않으며 귀하가 보여준 페이지의 코드도 마찬가지입니다. 'img1'은 무엇을 기대합니까? – BrenBarn

+0

꽤 당황 스럽네요. 도움에 감사드립니다. 하하 – user1243

답변

0

이 때문에이 두 라인이다 : 당신은 목록에서 어떤 위치에 요소를 할당하는

img1[dst1>0.01*dst1.max()]=[0,0,255] 
img2[dst2>0.01*dst2.max()]=[0,0,255] 

하지만 그 목록 여태 '초기화되었습니다.'

관련 문제