我正在寻找用于图像处理的AdaptiveMetropolis
步骤方法的示例或教程。
到目前为止,我发现的与图像相关的唯一资源是这个天文学dissertation和相关的GitHub repo。
这个更宽的question似乎没有提供PyMC示例代码。
如何在此模拟阵列上找到峰值?
import numpy as np
from matplotlib import pyplot as plt
sz = (12,18)
data_input = np.random.normal( loc=5.0, size=sz )
data_input[7:10, 2:6] = np.random.normal( loc=100.0, size=(3,4) )
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
im = ax.imshow( data_input )
ax.set_title("input")
答案 0 :(得分:1)
我最接近的是:http://nbviewer.ipython.org/github/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/blob/master/Chapter5_LossFunctions/LossFunctions.ipynb(见 示例:关于观察黑暗世界的Kaggle比赛)
在这个帖子中,您询问了一个特定的问题:https://github.com/pymc-devs/pymc/issues/653关于在图像中查找数组。这是对模型的第一次尝试:
在这种情况下,您似乎正在尝试用高斯噪声估计二维均匀分布。您必须将其转换为实际模型,但这只是一个想法:
lower_x~DiscreteUniform(0,20)
upper_x~DiscreteUniform(0,20)
lower_y~DiscreteUniform(0,20)
upper_y~DiscreteUniform(0,20)
身高〜正常(100,1)
noise~InvGamma(1,1)
表示=零((20,20))
表示[[lower_x:upper_x,lower_y:upper_y]] = height#这需要是 确定性的
数据〜正常(mu =均值,sd =噪声)
将upper_x编码为偏移量然后执行lower_x:lower_x + offset_x可能会更好,否则您需要强制执行lower_x< upper_x。