2013-04-16 174 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不起作用,这是因为你没有任何模块调用这种方式。