区域生长

【SimpleITK】使用区域生长法分割肺-CT img

守給你的承諾、 提交于 2020-02-05 11:46:09
区域生长 定义参考 维基百科 : 对图像分割的定义: 图像分割是对图像中的每个像素加标签的一个过程,这一过程使得具有相同标签的像素具有某种共同视觉特性。 区域生长的定义: 区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素具有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当做新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来,这样,一个区域就长成了。 定义简单明了。 由定义可知,区域生长的三个要点: 种子点 生长准则 终止条件 根据不同的生长准则和终止条件有不同的区域生长算法。 本次使用的是Confidence Connected。 Confidence Connected 参考官方文档: http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/Python_html/30_Segmentation_Region_Growing.html This region growing algorithm allows the user to implicitly specify the threshold bounds based on the

区域生长法 讨论

北城余情 提交于 2020-01-14 11:22:47
下面是《数字图像处理与机器视觉VisualC++与Matlab实现》(张铮等编著)配套代码中的区域生长法,大家能不能发现其中的缺陷,此外,其中只能选择一个种子点,你能修改为可选择多个种子点吗?并且加一个算法实现种子点的自动选取? %regionGrow.m function J = regionGrow(I) % 区域生长,需要以交互方式设定初始种子点,具体方法为鼠标单击图像中一点后,按下回车键 % % 输入:I - 原图像 % 输出:J - 输出图像 if isinteger(I) I=im2double(I); end figure,imshow(I),title('原始图像') [M,N]=size(I); [y,x]=getpts; %获得区域生长起始点 x1=round(x); %横坐标取整 y1=round(y); %纵坐标取整 seed=I(x1,y1); %将生长起始点灰度值存入seed中 J=zeros(M,N); %作一个全零与原图像等大的图像矩阵J,作为输出图像矩阵 J(x1,y1)=1; %将J中与所取点相对应位置的点设置为白 sum=seed; %储存符合区域生长条件的点的灰度值的和 suit=1; %储存符合区域生长条件的点的个数 count=1; %记录每次判断一点周围八点符合条件的新点的数目 threshold=0.15; %阈值