Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 中轴变换的实际实现?_Algorithm_Language Agnostic_Image Processing_Computer Vision_Computational Geometry - Fatal编程技术网

Algorithm 中轴变换的实际实现?

Algorithm 中轴变换的实际实现?,algorithm,language-agnostic,image-processing,computer-vision,computational-geometry,Algorithm,Language Agnostic,Image Processing,Computer Vision,Computational Geometry,我已经看过很多关于该算法基于什么的解释,但我似乎找不到中轴变换本身的任何实际代码(伪代码或某些语言) 对于某些实例(例如具有离散角点的多边形),可以将其简化为delaunay三角形,但我更关心的是有一个blob(例如跟踪的人)并希望计算其骨架的情况 此操作的伪代码是什么样子的?您可以从以下位置获得代码: 基本上是: def mmskelm(f, B=None, option="binary"): from string import upper from Numeric impo

我已经看过很多关于该算法基于什么的解释,但我似乎找不到中轴变换本身的任何实际代码(伪代码或某些语言)

对于某些实例(例如具有离散角点的多边形),可以将其简化为delaunay三角形,但我更关心的是有一个blob(例如跟踪的人)并希望计算其骨架的情况

此操作的伪代码是什么样子的?

您可以从以下位置获得代码:

基本上是:

def mmskelm(f, B=None, option="binary"):
    from string import upper
    from Numeric import asarray
    if B is None: B = mmsecross()
    assert mmisbinary(f),'Input binary image only'
    option = upper(option)
    k1,k2 = mmlimits(f)
    y = mmgray(mmintersec(f, k1),'uint16')
    iszero = asarray(y)
    nb = mmsesum(B,0)
    for r in range(1,65535):
        ero = mmero( f, nb)
        if mmisequal(ero, iszero): break
        f1 = mmopenth( ero, B)
        nb = mmsedil(nb, B)
        y = mmunion(y, mmgray(f1,'uint16',r))
    if option == 'BINARY':
        y = mmbinary(y)
    return y
当然,它使用同一个包中的其他函数

来自


请允许我欢迎您来到StackOverflow,并提醒我们在这里通常会做的三件事:1)当您收到帮助时,尝试给予帮助,回答您专业领域的问题2)3)当您看到好的问答时,请投票支持,因为系统的可信度是基于用户通过分享知识而获得的声誉。还记得接受更好地解决问题的答案,如果有的话,