多语言展示
当前在线:286今日阅读:26今日分享:39

【Mathematica入门】用分水岭算法破解迷宫拼图

如下图琐事的迷宫拼图,从上面进入,从下面出去。怎么走?本文,用Mathematica的分水岭算法WatershedComponents,快速寻找迷宫的路径。
工具/原料
1

电脑

2

Mathematica

方法/步骤
1

读图,把图片转化为二值图像。i =Binarize[img,0.8]这个可以去掉图像的水印。

2

分水岭算法,又叫做流域算法。它可以把二值图像分割为不同的区域。ImageResize[Rasterize[MatrixForm[WatershedComponents[i] ]],{500,500}]能够看到,矩阵里面明显有一个左右两边的分水岭。

3

画出分水岭:pic=Image[WatershedComponents[i], 'Bit']

4

对pic转反色,并进行膨胀处理:mask=Dilation[1-pic,1]

5

在原图中彰显这个分水岭:HighlightImage[i,mask] //Rasterize

6

消除中间那个孤岛的方法,是把孤岛和迷宫连起来。

推荐信息