Matlab图像分割---使用主动轮廓(snake)方法进行图像分割

更新时间:2023-07-13 19:58:00 阅读: 评论:0

booty music歌词翻译Matlab图像分割---使⽤主动轮廓(snake)⽅法进⾏图像分割实例1:使⽤主动轮廓(snake)将图像分割成前景和背景
实例2:基于边缘‘edge’⽅法的主动轮廓图像分割
实例3:基于区域‘Chan-Ve’⽅法的主动轮廓图像分割(可交互式创建多边形遮罩)
本例程的
主动轮廓⽅法,也称为 snake,是⼀种迭代式区域增长图像分割算法。使⽤主动轮廓算法,您可以在图像上指定初始曲线,然后使
⽤ activecontour 函数使曲线向对象边界演化。
垂蔓的意思activecontour函数
= activecontour(,,)
使⽤主动轮廓将图像 A 分割成前景(对象)和背景区域。mask 参数是⼀个指定主动轮廓初始状态的⼆值图像。mask 中对象区域(⽩⾊)的边界定义轮廓演化的初始轮廓位置,以⽤于分割图像。输出图像 B
W 是⼀个⼆值图像,前景为⽩⾊(逻辑 true),背景为⿊⾊(逻辑fal)。要获得更快、更准确的分割结果,请指定靠近所需对象边界的初始轮廓位置。通过最多迭代 n 次的轮廓演化来分割图像。
实例1:使⽤主动轮廓(snake)将图像分割成前景和背景
%%使⽤主动轮廓分割图像%%
clo all;                  %关闭当前所有图形窗⼝,清除⼯作空间所有变量
clear all;
clc;
%%读取并显⽰灰度图像
I = imread('coins.png');%读取图像
figure,imshow(I)%显⽰图像
title('Original Image')%添加标签
%%指定关注对象周围的初始轮廓。显⽰该轮廓
mask = zeros(size(I));%初始化⼀个与I图像⼀样⼤⼩的值都为0的图像mask
%mask(Y1:Y2,X1:X2),(X1,Y1)为矩形左上⾓,(X1,Y2)为矩形右下⾓
mask(25:end-25,25:end-25) = 1;%调整mask区域,x轴为(25~X_max_size-25),y轴为(25~Y_max_size-25)的区域赋值为1(纯⽩)
figure,imshow(mask)%显⽰mask图像
title('Initial Contour Location')%添加标签
%%使⽤默认⽅法的300次迭代对图像进⾏分割
bw = activecontour(I,mask,300);%调⽤activecontour函数
figure, imshow(bw);%显⽰分割图像
title('Segmented Image');%添加标签
怎么学日语
输⼊初始图像I                    设定初始轮廓图像mask        默认100次迭代分割结果图像bw    300次迭代分割结果图像bw
实例2:基于边缘‘edge’⽅法的主动轮廓图像分割
%%使⽤主动轮廓和交互式掩膜分割图像%%
clo all;%关闭当前所有图形窗⼝,清除⼯作空间所有变量
clear all;
clc;
I = imread('toyobjects.png');%读取图像
听你安排imshow(I)%显⽰图像
hold on
title('Original Image');%添加标签
%%指定靠近要分割对象的初始轮廓位置
mask = fal(size(I));%初始化⼀个与I图像⼀样⼤⼩的值都为0的图像mask
%mask(Y1:Y2,X1:X2),(X1,Y1)为矩形左上⾓,(X1,Y2)为矩形右下⾓
mask(50:150,40:170) = true;%调整mask区域,x轴为(40~170),y轴为(50~150)的区域赋值为1(纯⽩)
%figure,imshow(mask)%显⽰mask图像
visboundaries(mask,'Color','b');%在原始图像上以蓝⾊显⽰初始轮廓
%%使⽤'edge'⽅法分割图像并设置200次迭代
bw = activecontour(I, mask, 200, 'edge');
%%在原始图像上以红⾊显⽰最终轮廓
超pp连连看visboundaries(bw,'Color','r');
title('Initial contour (blue) and final contour (red)');%添加标签
%%显⽰分割图像
figure, imshow(bw)
title('Segmented Image');%添加标签
输⼊初始图像I                          初始轮廓图像mask            ‘edge’⽅法分割结果轮廓图像                分割⼆值图像bw 实例3:基于区域‘Chan-Ve’⽅法的主动轮廓图像分割(可交互式创建多边形遮罩)
%平滑因⼦ 'SmoothFactor' -分割区域的边界的平滑或规律性的程度 1.5
%收缩偏置'ContractionBias'-轮廓向外增长或向内收缩的趋势
toefl考试费用
%正值使轮廓向内收缩(收缩)。负值使轮廓线向外扩展(扩展)。 0.4
I = imread('toyobjects.png');%读取图像
imshow(I)%显⽰
title('Original Image')%添加标签
str = 'Click to lect initial contour location. Double-click to confirm and proceed.';
title(str,'Color','b','FontSize',12);
disp(sprintf('\nNote: Click clo to object boundaries for more accurate result.'))
%%交互式地指定初始轮廓
迈克尔杰克逊英文名%⿏标左键每单击⼀处确定选取轮廓多边形⼀个顶点,双击完成选取
mask = roipoly;%⽤⿏标画多边形的函数
killer是什么意思figure, imshow(mask)%显⽰轮廓
title('Initial MASK');%添加标签
%%分割图像,设置最⼤迭代200次
maxIterations = 200;
bw = activecontour(I, mask, maxIterations, 'Chan-Ve');%调⽤activecontour函数
figure, imshow(bw)%显⽰分割图像
title('Segmented Image');%添加标签
爱情小诗
输⼊初始图像I                  交互式地指定初始轮廓图像mask          初始轮廓mask      ‘Chan-Ve’⽅法分割结果图像bw 注:
1、分割的输⼊图像I需要指定为灰度图像
2、分割开始演化的初始轮廓mask,需指定为与I相同⼤⼩的⼆值图像
广州培训
3、在分割演化过程中执⾏的最⼤迭代次数n,指定为数值标量。如果当前迭代中的轮廓位置与最近5次迭代的轮廓位置之⼀相同,或者达到最⼤迭代次数,则activecontour停⽌活动轮廓的演化。如果初始轮廓位置(由掩模中的区域边界指定)远离⽬标边界,则可能需要指定较⾼的n值来实现预期的分割结果。
4、主动轮廓的⽅法主要有‘Chan-Ve' (default默认) (基于区域的能量模型)和 'edge'(基于边缘的模型)两种
5、输出分割图像bw,作为与输⼊图像I相同⼤⼩的⼆值图像返回。前景为⽩⾊(逻辑为真),背景为⿊⾊(逻辑为假)。
参考⽂献:
[1] T. F. Chan, L. A. Ve, Active contours without edges . IEEE Transactions on Image Processing, Volume 10, Issue 2, pp.266-277, 2001
[2] V. Calles, R. Kimmel, G. Sapiro, Geodesic active contours . International Journal of Computer Vision, Volume 22, Issue 1, pp. 61-79, 1997.
[3] R. T. Whitaker, A level-t approach to 3d reconstruction from range data . International Journal o
f Computer Vision,Volume 29, Issue 3, pp.203-231, 1998.

本文发布于:2023-07-13 19:58:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1094852.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   分割   轮廓   初始
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图