区域生长算法原理及MATLAB实现

1. 基于区域生长算法的图像分割原理

数字图像分割算法一般是基于灰度值的两个基本特性之一:不连续性和相似性。前一种性质的应用途径是基于图像灰度的不连续变化分割图像,比如图像的边缘。第二种性质的主要应用途径是依据实现指定的准则将图像分割为相似的区域。区域生长算法就是基于图像的第二种性质,即图像灰度值的相似性。

1.1 基本公式

令R表示整幅图像区域,那么分割可以看成将区域R划分为n个子区域R1,,R2,......Rn的过程,并需要满足以下条件:

a: U(Ri) = R;

b: Ri是一个连通区域,i=1,2,3,......n;

c: Ri ∩ Rj = 空集,对于任何的i,j;都有i≠j;

d: P(Ri) = Ture, 对i=1,2,......n;

e: R(Pi U Rj) = False, i≠j;

正如“区域生长”的名字所暗示的:区域生长是根据一种事先定义的准则将像素或者子区域聚合成更大区域的过程,并且要充分保证分割后的区域满足a~e的条件。

1.2 区域生长算法设计思路

区域生长算法的设计主要由以下三点:生长种子点的确定,区域生长的条件,区域生长停止的条件。种子点的个数根据具体的问题可以选择一个或者多个,并且根据具体的问题不同可以采用完全自动确定或者人机交互确定。

区域生长的条件实际上就是根据像素灰度间的连续性而定义的一些相似性准则,而区域生长停止的条件定义了一个终止规则,基本上,在没有像素满足加入某个区域的条件的时候,区域生长就会停止。在算法里面,定义一个变量,最大像素灰度值距离reg_maxdist.当待加入像素点的灰度值和已经分割好的区域所有像素点的平均灰度值的差的绝对值小于或等于reg_maxdist时,该像素点加入到已经分割到的区域。相反,则区域生长算法停止。

在种子店1的4邻域连通像素中,即2、3、4、5点,像素点5的灰度值与种子点的灰度值最接近,所以像素点5被加入到分割区域中,并且像素点5会作为新的种子点执行后面的过程。在第二次循环过程中,由于待分析图像中,即2、3、4、6、7、8,像素7的灰度值和已经分割的区域(由1和5组成)的灰度均值10.5最接近,所以像素点7被加入到分割区域中。最后一幅图,示意了区域生长的方向(由浅入深)。

从上面的分析中,我们可以看出,在区域生长过程中,需要知道待分析像素点的编号(通过像素点的x和y坐标值来表示),同时还要知道这些待分析点的像素的灰度值。

1.3 区域生长算法伪代码

begin

初始化变量 pixdist = 0;

交互式选择一个种子点,并且初始化区域的灰度均值变量reg_mean为该种子点的灰度值。

while (pixdist < reg_maxdist)

将当前种子点的四邻域像素点加入到链表neg_list中;

分别计算neg_list中所有元素的灰度值和reg_mean差的绝对值,并且得到最小值的元素i(x,y).令pixdist = abs(neg_list(i,3)-reg_mean);

更新 reg_mean = (reg_mean*reg_size + neg_list(i,3))/(reg_size + 1);(注:reg_size表示分割好区域内像素点的数量)

将旧的种子点标记为已经分割好的区域像素点;

将i(x,y)当做新的种子点,并将新的种子点i(x,y)从链表neg_list中移除

end

end

1.4 基于MATLAB的区域生长算法设计

% Segment based on area, Region Growing;
clear  all; close all; clc
[fileName,pathName] = uigetfile('*.*','Please select an image');%文件筐,选择文件
if(fileName)fileName = strcat(pathName,fileName);fileName = lower(fileName);%一致的小写字母形式
else J = 0;%记录区域生长所分割得到的区域msgbox('Please select an image');return; %退出程序
endI = imread(fileName);
if( ~( size(I,3)-3 ))I = rgb2gray(I);%转化为单通道灰度图
end
I = im2double(I); %图像灰度值归一化到[0,1]之间
Ireshape = imresize(I,[600,800]);
I = Ireshape(51:475,200:699);
gausFilter = fspecial('gaussian',[5 5],0.5);
I = imfilter(I,gausFilter,'replicate');%种子点的交互式选择
if( exist('x','var') == 0 && exist('y','var') == 0)subplot(2,2,1),imshow(I,[]);hold on;[y,x] = getpts;%鼠标取点  回车确定x = round(x(1));%选择种子点y = round(y(1));
endif( nargin == 0)reg_maxdist = 0.1;%nargin是matlab代码编写中常用的一个技巧,主要用于计算当前主函数的输入参数个%数,一般可以根据nargin的返回值来确定主函数输入参数的缺省值。在实现中,如果%用户输入的参数个数为零,那么默认为0.2
end
J = zeros(size(I)); % 主函数的返回值,记录区域生长所得到的区域
Isizes = size(I);
reg_mean = I(x,y);%表示分割好的区域内的平均值,初始化为种子点的灰度值
reg_size = 1;%分割的到的区域,初始化只有种子点一个
neg_free = 10000; %动态分配内存的时候每次申请的连续空间大小
neg_list = zeros(neg_free,3);
%定义邻域列表,并且预先分配用于储存待分析的像素点的坐标值和灰度值的空间,加速
%如果图像比较大,需要结合neg_free来实现matlab内存的动态分配
neg_pos = 0;%用于记录neg_list中的待分析的像素点的个数
pixdist = 0;
%记录最新像素点增加到分割区域后的距离测度
%下一次待分析的四个邻域像素点和当前种子点的距离
%如果当前坐标为(x,y)那么通过neigb我们可以得到其四个邻域像素的位置
neigb = [ -1 0;1  0;0 -1;0  1];%开始进行区域生长,当所有待分析的邻域像素点和已经分割好的区域像素点的灰度值距离%大于reg_maxdis,区域生长结束while (pixdist < 0.06 && reg_size < numel(I))%增加新的邻域像素到neg_list中for j=1:4xn = x + neigb(j,1);yn = y + neigb(j,2);%检查邻域像素是否超过了图像的边界ins = (xn>=1)&&(yn>=1)&&(xn<=Isizes(1))&&(yn<=Isizes(1));%如果邻域像素在图像内部,并且尚未分割好;那么将它添加到邻域列表中if( ins && J(xn,yn)==0)neg_pos = neg_pos+1;neg_list(neg_pos,:) =[ xn, yn, I(xn,yn)];%存储对应点的灰度值J(xn,yn) = 1;%标注该邻域像素点已经被访问过 并不意味着,他在分割区域内endend%如果分配的内存空问不够,申请新的内存空间if (neg_pos+10>neg_free)neg_free = neg_free + 100000;neg_list((neg_pos +1):neg_free,:) = 0;end%从所有待分析的像素点中选择一个像素点,该点的灰度值和已经分割好区域灰度均值的%差的绝对值时所待分析像素中最小的dist = abs(neg_list(1:neg_pos,3)-reg_mean);[pixdist,index] = min(dist);%计算区域的新的均值reg_mean = (reg_mean * reg_size +neg_list(index,3))/(reg_size + 1);reg_size = reg_size + 1;%将旧的种子点标记为已经分割好的区域像素点J(x,y)=2;%标志该像素点已经是分割好的像素点x = neg_list(index,1);y = neg_list(index,2);
%     pause(0.0005);%动态绘制
%     if(J(x,y)==2)
%     plot(x,y,'r.');
%     end%将新的种子点从待分析的邻域像素列表中移除neg_list(index,:) = neg_list(neg_pos,:);neg_pos = neg_pos -1;endJ = (J==2);%我们之前将分割好的像素点标记为2hold off;subplot(2,2,2),imshow(J);J = bwmorph(J,'dilate');%补充空洞subplot(2,2,3),imshow(J);subplot(2,2,4),imshow(I+J);

 

2. 算法实验分析

2.1 CT图像实验-分割肝脏实质


2.2 US图像实验-分割肝脏血管

          分割不完整

                                                                                                                                        过分割

      对有明显边界的分割效果好

 

 

3.算法应用总结

1.对CT图像、MR图像以及所有的具有边界效应,或者是该区域与外界区域有明显差距的图像,分割效果很好。

2.对感兴趣区域与外接区域存在边缘连通现象的图像,分割效果很差。如超声图像,肝脏对超声的反应就是“均匀性”散点回声。这造成“基于邻域像素相似性”分割很难应用。阈值设置的小,造成分割不完整;阈值设置得太大,造成过分割现象。

 

//

转载:https://blog.csdn.net/shenziheng1/article/details/50878911

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给初学者们讲解人工神经网络(ANN)

1. 介绍 这份教学包是针对那些对人工神经网络&#xff08;ANN&#xff09;没有接触过、基本上完全不懂的一批人做的一个简短入门级的介绍。我们首先简要的引入网络模型&#xff0c;然后才开始讲解ANN的相关术语。作为一个应用的案例&#xff0c;我们解释了后向传播算法&#x…

最后一场「屏之争」:汽车大佬与硅谷巨头的贴身肉搏

作者 | Tim Higgins 、William Boston来源&#xff1a;机器之能编译摘要&#xff1a;安卓的跨平台生态系统允许用户在手机和车机等不同屏幕上访问他们的数字生活&#xff0c;在去年&#xff0c;它帮助谷歌获得了 820 亿美元的移动广告收入。但在大众 CEO 赫伯特迪斯&#xff08…

对网络体系变革的思考

来源&#xff1a;&#xff1a;中兴摘要&#xff1a;互联网已走过了50年&#xff0c;其发展远远超越了初衷&#xff0c;各类新业务与应用加大了网络体系变革的压力&#xff0c;对网络体系颠覆性的探索和演进创新一直在进行。近年来关于5G网络体系的演进方向逐渐明朗&#xff0c;…

Junit 内部解密之一: Test + TestCase + TestSuite

转自:http://blog.sina.com.cn/s/blog_6cf812be0100wbhq.html nterface: Test 整个测试的的基础接口 Method 1: abstract int countTestCases() 这个方法主要是用来计算要运行的test case的数量的。 Method 2&#xff1a;abstract void run(TestResult result) 这个方法主要是…

数据预测之BP神经网络具体应用以及matlab实现

1.具体应用实例。根据表2&#xff0c;预测序号15的跳高成绩。 表2 国内男子跳高运动员各项素质指标 序号 跳高成绩() 30行进跑(s) 立定三级跳远() 助跑摸高() 助跑4—6步跳高() 负重深蹲杠铃() 杠铃半蹲系数 100 (s) 抓举 () 1 2.24 3.2 9.6 3.45 2.15 1…

谷歌机器人业务重组 花里胡哨没有用 要做实干家

来源&#xff1a; medium 编译 | 网易智能 (乐邦)在机器人领域&#xff0c;谷歌一直都不怎么顺利&#xff0c;尽管在前些年它大举进军&#xff0c;完成了多宗相关的并购交易。最近该公司重组成立Robotics at Google实验室&#xff0c;这对于机器人和智能机器的发展来说是一大步…

BP神经网络识别手写数字项目解析及matlab实现

BP神经网络指传统的人工神经网络&#xff0c;相比于卷积神经网络(CNN)来说要简单些。 人工神经网络具有复杂模式和进行联想、推理记忆的功能, 它是解决某些传统方法所无法解决的问题的有力工具。目前, 它日益受到重视, 同时其他学科的发展, 为其提供了更大的机会。1986 年, Rom…

智能家居市场年增速近30%!苹果看齐亚马逊、谷歌,欲开辟三足鼎立

来源&#xff1a;物联网智库整理摘要&#xff1a;作为世界领先的科技巨头&#xff0c;亚马逊、谷歌和苹果相爱相杀许多年。在智能家居领域&#xff0c;三家的“战争”也会随着市场的成熟而更加激烈。尽管苹果目前稍显落后&#xff0c;但未来市场广阔谁主沉浮仍未可知。近日&…

简单实现UITableView索引功能(中英文首字母索引)(一) ByH罗

UITableView索引功能是常见的,主要是获取中英文的首字母并排序&#xff0c;系统自带获取首字母 //系统获取首字母 - (NSString *) pinyinFirstLetter:(NSString*)sourceString {NSMutableString *source [sourceString mutableCopy];CFStringTransform((__bridge CFMutableStr…

matlab——图像细化

所谓细化&#xff0c;就是从原来的图像中去掉一些点&#xff0c;但仍要保持原来的形状。 1、代码如下&#xff1a; close all;clear all;clc; %关闭所有图形窗口&#xff0c;清除工作空间所有变量&#xff0c;清空命令行 I1imread(circles.png); subplot(1,3,1),imshow(I1);…

中国60家最强汽车初创在此!芯片厂高调入局,智能网联强势霸榜

来源&#xff1a;智东西摘要&#xff1a;中国汽车科技最全地图&#xff01;2018年&#xff0c;知名市场研究机构毕马威再次设立了中国汽车科技领先企业50强和新锐企业10强榜单评选&#xff0c;并在近日公布了结果。备选企业包括在智能网联、汽车后市场服务、汽车制造技术、出行…

专设AI周会 高管悉数到场 微软CEO有多重视人工智能?

来源&#xff1a;CNBC 翻译 | 网易智能 (天门山)据CNBC报道&#xff0c;一般在每周的周四&#xff0c;微软首席执行官萨蒂亚纳德拉(Satya Nadella)和微软高管团队都要在一起开会&#xff0c;讨论该公司越来越多的人工智能&#xff08;AI&#xff09;项目。微软首席技术官凯文斯…

汽车电子:下一个苹果产业链

来源&#xff1a;安信证券摘要&#xff1a;本文将从“7个层级深度解析”这次产业发展红利带来巨大且丰富的投资机遇。汽车电子产业&#xff0c;预计将是继家电、PC和手机之后又一次全产业链级别的大发展机遇&#xff0c;不同的是&#xff1a;1. 其构成产品附加值更高(高稳定/高…

模块化开发之sea.js实现原理总结

seajs官网说&#xff1a;seajs是一个模块加载器&#xff0c;所以学习它并不难。 在我的理解就是&#xff1a;本来我们是需要手动创建 script标签 引入 js文件的&#xff0c;但用seajs后&#xff0c;它就自动帮我们完成这些工作。 这里只说实现原理&#xff0c;具体使用请看seaj…

【干货】百度联合清华大学发布国内首个基于AI实践的《产业智能化白皮书》(附报告全文)...

来源&#xff1a;百度AI在4月9日举行的“百度大学 Alpha 学院首期学员毕业典礼”上&#xff0c;百度联合清华大学发布国内首个基于 AI 实践的行业重磅报告&#xff0c;《产业智能化白皮书——人工智能产业化发展地形初现端倪》。这是国内首次从产业演进的视角探讨 AI 与产业融合…

全球语种谱系图,看看机器翻译需要跨越的大山

来源&#xff1a;语言春秋编辑 | 北外新闻中心 杨丹蕊摘要&#xff1a;当前机器翻译技术可以分成两类&#xff0c;一种是 Rich Resource NMT&#xff0c;也就是双语语料丰富的语言对&#xff08;比如中文 - 英文&#xff09;&#xff1b;另一种叫 Low Resource NMT&#xff0c…

Big Data Security Part One: Introducing PacketPig

Series Introduction Packetloop CTO Michael Baker (cloudjunky) made a big splash when he presented ‘Finding Needles in Haystacks (the Size of Countries)‘ at Blackhat Europe earlier this year. The paper outlines a toolkit based onApache Pig, Packetpig pack…

美国科学家成功恢复老年人工作记忆,望奠定认知干预疗法基础

来源&#xff1a;科技日报伴随着人体衰老&#xff0c;大脑对信息加工和贮存的能力也必然会下降&#xff0c;但如果这种能力可以被逆转呢&#xff1f;据英国《Nature Neuroscience》杂志8日在线发表的一项研究&#xff0c;美国科学家通过同步脑区节律——按特定节律刺激颞叶和额…

广告机市场和产品

广告机行业分析 前言 关于广告机&#xff0c;不同的人有不同的认识&#xff0c;此部分主要说明文中所指广告机的范围。 在讨论前&#xff0c;先区分几个概念。 1、 广告机与数字标牌 数字标牌是数字标示牌的简称&#xff0c;指代显示任意信息的显示终端&#xff1b;广告机是指…

《工业大数据白皮书》2019版正式发布

来源&#xff1a;悟空智能科技近日&#xff0c;由中国电子技术标准化研究院、全国信息技术标准化技术委员会大数据标准工作组主编&#xff0c;工业大数据产业应用联盟联合主编&#xff0c;联想集团等多家联盟成员企业参编的《工业大数据白皮书&#xff08;2019版&#xff09;》…