gpt4 book ai didi

python - 当尝试将函数与Python中的图像匹配时,有没有办法计算残差?

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:42 26 4
gpt4 key购买 nike

我正在尝试优化数学定义函数与我知道包含类似结构的图像的拟合。是否有一种众所周知的方法来计算函数与图像的拟合残差?

我正在使用scipy.minimize.optimize尝试使曲线适合图像。我的策略是衡量我的特征在矩阵 B 中的分割程度下面,匹配我的功能 f通过最小化 B 之间的平均欧几里得距离和f .

我定义了以下函数,并将其传递给 scipy.optimize.minimize :

# x is a tuple of arguments passed to f
# f is the function I am trying to fit to B, which returns a matrix of 0s and 1s
# B is the image I am trying to fit to, whose voxel values are 0 or 1

from scipy.ndimage.morphology import distance_transform_edt
def objective(x, f, B):
f_matrix = f(*x)
f_matrix_edt = distance_transform_edt(f_matrix)
residuals = B * f_matrix_edt
return residuals.sum()

我期望解决方案能够收敛到强拟合,但我得到的拟合甚至不包含在矩阵的范围内。我怀疑这是因为我计算残差的策略在这种情况下是完全错误的!

最佳答案

我的解决方案是使用凸加权函数来计算残差(如抛物线),并对原始图像的骨架化版本执行欧几里德距离变换。因此,我的目标是最小化残差平方和,这对于将形状拟合到图像非常有效。

from scipy.ndimage.morphology import distance_transform_edt
from skimage.morphology import skeletonize
def objective(x, f, B):
f_matrix = f(*x)
B_skeleton = skeletonize(B)
B_edt = distance_transform_edt(B_skeleton)
residuals = f_matrix * B_edt ** 2
return residuals.sum()

这给出了一些相当好的结果!

关于python - 当尝试将函数与Python中的图像匹配时,有没有办法计算残差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55720128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com