高斯核的广义拉普拉斯算子

2024-09-21 03:20:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有困难实现拉普拉斯高斯核。我有下面的代码,我试图实现一个9x9内核,sigma=1.4。内核显示在这个链接上

http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm

但是,我的值与内核中的值完全不同,我认为我的函数关闭了。我们将不胜感激。谢谢您。在

import math
pi= math.pi
log = [[0 for x in range(9)] for x in range(9)]
def genlog(log,size,o):
    for i in range(-size/2,size/2):
        for j in range(-size/2,size/2):
            log[i][j] = -(pi*o**4)**(-1)*(1-(i**2+j**2)/(2*o**2))*math.exp(-(i**2+j**2)/(2*o**2))
def printlog(log,size):
    for i in range(-size/2,size/2):
        print ' '.join(str(log[i][j]) for j in range(-size/2,size/2))

genlog(log,9,1.4)
printlog(log,9)

Tags: 代码inloghttpforsize链接def
2条回答

您的代码一开始很难阅读,但是对于初学者来说,您需要:

log[i][j] = (pi*o**4)**.5*...

根据你的公式,当它真的应该发生的时候:

^{pr2}$

将某个值增加到.5实际上是平方根。你要找的是相反的,把它提高-1。你也忘了做负片。在

这个问题通常有三年的历史,所以我不知道它是否有用,但我在excel中实现了引用的算法,发现您的函数应该这样写:

log[i][j] = (-1)/(pi*o**4)*(1-(i**2+j**2)/(2*o**2))*math.exp(-(i**2+j**2)/(2*o**2))

也应该使用比例因子来说明源图像的大小。在

相关问题 更多 >

    热门问题