2013-04-16 221 views
0

如果我的某個線程存在某處,請提前致歉。
我是Python編程新手,嘗試從編程計算機視覺與PythonJan Erik SolemPython名稱錯誤:未定義名稱'harris'

這裏的例子(保存在一個文件名爲 「harris.py」)的代碼:

https://github.com/jesolem/PCV/blob/master/pcv_book/harris.py

(請注意,我的代碼,結束於行70)

後這段代碼的很好的解釋,在書中指出:「嘗試運行以下命令:」

im = array(Image.open(’empire.jpg’).convert(’L’)) 
harrisim = harris.compute_harris_response(im) 
filtered_coords = harris.get_harris_points(harrisim,6) 
harris.plot_harris_points(im, filtered_coords) 

我遇到的問題有兩個:

  1. 我不確定在哪裏運行最後幾行代碼,在harris.py 或單獨的python文件中。
  2. 在哪個文件我運行它,顯示以下錯誤:

    harrisim = harris.compute_harris_response(im)
    NameError: name 'harris' is not defined

我不明白爲什麼顯示這個錯誤,因爲「哈里斯應該調用python腳本harris.py。或者我錯了?

+1

名字哈里斯會打電話給哈里斯,如果你有進口哈里斯。 – theAlse

回答

5

這意味着進入一個單獨的文件,但你需要進口harris模塊首先:

import harris 

模塊是提供給您的代碼之前。

+0

如果我只寫: 'import harris' 還有另一個錯誤: 'ImportError:No module named harris' 對不起,如果我的問題看起來太愚蠢了,但這是我第一次用python編程。 –

+0

@FrancescoSgaramella:這意味着'harris.py'所在的目錄不是你的模塊搜索路徑的一部分。當以交互方式運行解釋器時,*當前目錄*會自動添加到搜索路徑中,當使用'python path/to/script.py'運行腳本時,會添加腳本所在的目錄。 –

+2

@FrancescoSgaramella:換句話說,在與'harris.py'文件相同的目錄下運行'python'。 –

0

哈里斯的名字不存在於你的腳本中(它在使用它之前沒有被初始化,所以Python不知道哈里斯是什麼)。如果import harris不起作用,這是因爲你沒有任何模塊調用這種方式。