新样式的getargs格式,但参数不是元组python gabor过滤

时间:2016-12-23 04:49:30

标签: windows python-2.7 image-processing

我正在尝试使用gabor过滤器来增强图像。我从谷歌上获得了一个代码片段,我正在处理它给了我一个不熟悉的错误请指导我通过下面附带的代码以便错误可以纠正。

给我的错误是

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后更新

我在安装python 2.7.6之后尝试了代码,如堆栈溢出的答案中所述,但仍然存在错误。 现在该怎么办?

经过长时间的代码测试后更新

我已深入了解代码,了解其工作发现错误代码,但我无法纠正错误

错误属于 apply_kernel_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)

我不确定我的发现是否正确

任何帮助将不胜感激。

0 个答案:

没有答案