Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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_Image Processing_Computer Vision_Ocr - Fatal编程技术网

Algorithm 中轴变换的实现

Algorithm 中轴变换的实现,algorithm,image-processing,computer-vision,ocr,Algorithm,Image Processing,Computer Vision,Ocr,如何实现将第一幅图像转换为第二幅图像的算法 (来源:) (来源:) C++/C中的哪个库支持中轴变换?互联网上有许多中轴变换的实现(我个人不使用库,但我确信它有一个不错的实现)。但是,您可以自己轻松地实现它 为了执行中轴变换,我们只需要定义一个术语:简单点。 点(P)是一个简单的点,如果移除P不会影响前景或背景的连接组件的数量。因此,你必须决定(4或8)作为背景和前景-为了工作,为两者选择不同的一个(如果你有兴趣为什么,请在谷歌上查找Jordan属性) 中间变换轴可以通过依次删除简单点来实

如何实现将第一幅图像转换为第二幅图像的算法


(来源:)


(来源:)


C++/C中的哪个库支持中轴变换?

互联网上有许多中轴变换的实现(我个人不使用库,但我确信它有一个不错的实现)。但是,您可以自己轻松地实现它

为了执行中轴变换,我们只需要定义一个术语:简单点。 点(P)是一个简单的点,如果移除P不会影响前景或背景的连接组件的数量。因此,你必须决定(4或8)作为背景和前景-为了工作,为两者选择不同的一个(如果你有兴趣为什么,请在谷歌上查找Jordan属性)

中间变换轴可以通过依次删除简单点来实现。如果没有更多的简单点,则获得最终骨架。如果你只有端点或非简单点,你会得到弯曲的骨架(我不知道它的英文名称,这很少见-请纠正我)。你在问题中提供了后者的例子


查找简单的点可以很容易地使用或查找表来实现。提示:在3x3本地窗口中,如果背景中的连接组件数为1,前景中的连接组件数为1,则点为简单点。

此C库中提供了一个中轴变换:http://www.pinkhq.com/ 还有很多其他相关的功能。
查看此功能:http://www.pinkhq.com/medialaxis_8c.html

我找到了您的图像来源,因此添加了链接。事实证明,页面有几个链接到库I和C++,它具有这个算法的实现。作为起点,我会考虑一些引用,从一个给定的输入中显示正确的输出。你的例子的右边显然不是左边的垫子。例如,在“B”最左边的底部/顶部,线条不能像图中所示那样笔直。这可能会对实际MAT获得的输出造成混淆。