问题描述
我使用skimage
对图像进行Canny边缘检测,并获得了以下结果。
我注意到结果只是一个布尔数组,并且形状被很好地定义为曲线。我想知道以下事情是否可行,以及是否有可用的工具。
-
我想从该图像中提取“曲线”。通过曲线,我的意思是一系列元组
(x,y)
代表图像上图像为True
的点,并连接到相邻点(具有任意(1或2)像素公差)。在此图像中,我认为对1像素宽容过程的期望是list
,其中包含2条开放曲线和1条奇点(从左上角开始),还有一条闭合曲线(从右下角开始)。如果将公差提高到2,将是2条开放曲线和1条闭合曲线。您可能会认为结果的格式与contour
中的matplotlib
相似。 -
我想平滑从上方获得的曲线,因为它会被像素化。我假设对具有周期性边界条件(对于闭合曲线)或恒定边界条件(对于开放曲线)的每条曲线中的
x
和y
数组应用盒车平滑将达到目的。 / p> -
我的示例在曲线中没有任何“分叉”或“分叉”点,但是我想知道在Canny边缘检测算法中是否可能存在。如果他们这样做,那么我想要一种将其子曲线打包为
list
的方法,以便结果具有一定的层次结构。 -
此外,尽管我提到我的图片没有任何分叉的特征,但如果您仔细观察左上角的下部开放曲线,曲线上会伸出一个点(以表示该点的曲率)边缘,我认为)。我会将其视为一条连续曲线,而不是一条从较大曲线的中间分支出来的线。 (尽管,老实说,我不确定哪种行为在逻辑上最有意义。)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)