首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高斯核的广义Laplacian

高斯核的广义Laplacian
EN

Stack Overflow用户
提问于 2012-11-27 04:12:47
回答 2查看 2.9K关注 0票数 1

我在实现高斯内核的拉普拉斯时遇到了困难。我有以下代码,我正在尝试实现一个sigma = 1.4的9x9内核。内核显示在此链接上

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

然而,我的值与内核中的值完全不同,我想我的函数是关闭的。我们将非常感谢您的帮助。谢谢。

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2015-07-21 16:13:40

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

代码语言:javascript
复制
log[i][j] = (-1)/(pi*o**4)*(1-(i**2+j**2)/(2*o**2))*math.exp(-(i**2+j**2)/(2*o**2))

还应该使用缩放因子来考虑源图像的大小。

票数 2
EN

Stack Overflow用户

发布于 2012-11-27 04:16:55

你的代码一开始就很难读懂,但对于初学者来说,你需要:

代码语言:javascript
复制
log[i][j] = (pi*o**4)**.5*...

当它真正应该是的时候,根据你的公式:

代码语言:javascript
复制
log[i][j] = -(pi*o**4)**(-1)*...

将一些东西提升到.5实际上是一个平方根。您正在寻找的是相反的,由-1提升它。还有,你忘了把它改成负数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13572383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档