【算法-- marching square】思路简介

【个人记录用】

介绍

marching square 是一个十分简单但精妙的计算image轮廓(contour)的算法,用于2D图形的计算。【3D图形使用的是marching cube】

算法思路

  1. 将图像划分成若干单元格
  2. 将单元格的四个角进行赋值
    赋值规则: 如果此顶角在contour的边界或处于其中,则被赋值为1 ,其余顶角皆赋值为0。
  3. 使用填充规则填充每个单元格
    填充规则: 在这里插入图片描述
    【注释】图像从左下角开始,以二进制的方式表示了16种赋值模版。不难看出,标值为1的角被填充为黑色(正方形1、2、4、8,对应二进制中的2的次数),蓝色圈中。不同黑色顶角之间又依据黑色顶角数量进行了对应的构造。如图6,右边的两个角都被标记,所以黑色部分直接占了整个正方形的一般。又如图7,只有左上角的角未被标记,所以直接去用了图8的反图来表示其余三个角都被标记这种情况。
  4. 最后得到类似这样的图形
  5. 在这里插入图片描述

Additional

相关的finding—contour的代码详见这里
https://scikit-image.org/docs/dev/api/skimage.measure.html#skimage.measure.find_contours

Reference

C. Maple, “Geometric design and space planning using the marching squares and marching cube algorithms,” 2003 International Conference on Geometric Modeling and Graphics, 2003. Proceedings, 2003, pp. 90-95, doi: 10.1109/GMAG.2003.1219671.

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值