Windows 新样式的getargs格式,但参数不是元组python gabor筛选
我正在尝试实现gabor过滤器来增强图像。我从google获得了一个代码片段,我正在处理该代码片段,它给了我一个不熟悉的错误。请指导我完成下面附带的代码,以便更正错误 给我错误的原因是Windows 新样式的getargs格式,但参数不是元组python gabor筛选,windows,python-2.7,image-processing,Windows,Python 2.7,Image Processing,我正在尝试实现gabor过滤器来增强图像。我从google获得了一个代码片段,我正在处理该代码片段,它给了我一个不熟悉的错误。请指导我完成下面附带的代码,以便更正错误 给我错误的原因是 def gabor(im, W, angles): x, y = im.size im_load = im.load() freqs = frequency.freq(im, W, angles) print "computing local ridge frequency do
def gabor(im, W, angles):
x, y = im.size
im_load = im.load()
freqs = frequency.freq(im, W, angles)
print "computing local ridge frequency done"
gauss = utils.gauss_kernel(3)
utils.apply_kernel(freqs, gauss)
for i in range(1, x / W - 1):
for j in range(1, y / W - 1):
kernel = gabor_kernel(W, angles[i][j], freqs[i][j])
for k in range(0, W):
for l in range(0, W):
im_load[i * W + k, j * W + l] = utils.apply_kernel_at(lambda x, y: im_load[x, y],kernel,i * W + k,j * W + l)
return im
迭代在第四个for循环之后进行得很顺利,因为它显示了一个错误
im_load[i * W + k, j * W + l] = utils.apply_kernel_at(lambda x, y: im_load[x, y],kernel,i * W + k,j * W + l)
错误是这样说的
im_load[i * W + k, j * W + l] = utils.apply_kernel_at(lambda x, y: im_load[x, y],kernel,i * W + k,j * W + l)
SystemError: new style getargs format but argument is not a tuple
更新
我在谷歌上搜索了几次后找到了这个答案
似乎我正在使用的python 2.7.10上的代码从来都不起作用
它适用于2.7.6
如何使其在python 2.7.10中工作
安装python 2.7.6后更新
我在安装Python2.7.6后尝试了这段代码,正如在stack overflow中的回答中所述,但错误仍然存在。
现在该怎么办
对代码进行长时间测试后更新
我已经深入研究了代码,以了解其工作原理,发现了错误代码,但我无法纠正它
函数中存在错误apply\u kernel\u at
def apply_kernel_at(get_value, kernel, i, j):
kernel_size = len(kernel)
result = 0
for k in range(0, kernel_size):
for l in range(0, kernel_size):
pixel = get_value(i + k - kernel_size / 2, j + l - kernel_size / 2)
result += pixel * kernel[k][l]
#print pixel
return result
它返回一个值结果,但使用函数调用的行需要两个值
im_load[i * W + k, j * W + l]=utils.apply_kernel_at(lambda x, y: im_load[x, y],kernel,i * W + k,j * W + l)
我不确定我的发现是否正确
任何帮助都将不胜感激