首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Snake图像分割

Snake图像分割

作者头像
裴来凡
发布2022-05-28 16:58:53
发布2022-05-28 16:58:53
66600
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
import matplotlib.pylab as pylab
from skimage.filters import gaussian
from skimage.segmentation import active_contour
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#将彩色图片转换为灰度图片
s=np.linspace(0,2*np.pi,400)#构造圆
x=260+100*np.cos(s)
y=240+100*np.sin(s)
init=np.array([x,y]).T#构造Snake
i=1
pylab.figure(figsize=(20,20))
for max_it in [20, 30, 50, 100]:
    snake=active_contour(gaussian(gray,3),init,alpha=0.015,beta=10,gamma=0.001,max_iterations=max_it)#Snake图像分割
    pylab.subplot(2,2,i)
    pylab.imshow(img)
    pylab.plot(init[:,0],init[:,1],'--b',lw=3)
    pylab.plot(snake[:,0],snake[:,1],'-r',lw=3)
    pylab.axis('off')
    pylab.title('max_iteration='+str(max_it),size=20)
    i+=1
    pylab.tight_layout()
    pylab.show()

算法:活动轮廓(Snake)是用于拟合开或闭合样条曲线与图像中的线或边缘,围绕感兴趣的目标初始化“蛇”,并让它收缩或膨胀,以便于使封闭的轮廓与感兴趣的目标相拟合。“蛇”可以是周期性的(用于分段),也可以具有固定和/或自由端。输出蛇的长度与输入边界的长度相同。由于点的数量是恒定的,因此请确保初始蛇具有足够的点以捕获最终轮廓的细节。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档