funnyhank
2009-05-13, 08:27
算法具体实现步骤
(1)在第一张CT图像的待分割区域中人工选取一个种子点,并把该种子点保存到种子队列Q中,然后利用四邻域的生长规则,如图2所示,按逆时针方向进行种子点生长具体实现是:先计算该种子点及其相邻四个点的灰度值,分别用Gray, Gray1,Gray2,Gray3和Gray4表示,然后根据灰度相似性判决,确定这四个相邻的点是否可以做为新的种子点,如果可以则把它保存到种子队列Q中,再在队列中取下一个种子点,继续上面的步骤,直到队列为空,这样得到第一张CT图像的要分割区域的结果,用点集A表示,同时用两个数组分别保存点集A中每个点的X坐标(用Seed_x保存)和Y坐标(用Seed_y保存),并计算出该目标区域的平均灰度值(用AveGray表示)和方差(用Squre表示)。
(2)将上张分割结果点集A中所有的点投影到下一张CT图像上,这样得到一个投影点集,用B来表示。这里考虑到,在CT序列图像中,下一张图像待分割的目标区域可能比上一张分割出来的
目标区域要小,所以点集B中的点不一定都能作为种子生长点,必须对其进行一些优化。具体解决方法是这样的:计算点集B中所有点的灰度值并将它们与AveGray比较判断(阀值设定为方差Squere的值),确定哪些点可以作为种子点,这样可以得到种子点集,用C来表示,同时用数组Seedx和Seedy保存这些种子点的X坐标和Y坐标。
(3)算法考虑到,在CT序列图像中,下一张图像待分割的目标区域可能比上一张分割出来的目
标区域要大,所以用四邻域方法对种子点集C进行轮廓提取,得到一组轮廓点集,用D来表示,接
着用四领域的生长规则,根据灰度相似性判决,对轮廓点集D中所有点进行区域生长,这里的阀值设定为AveGray,把满足生长规则的点保存到点集A中,最终得到该张CT图像待分割目标的结果。
(4)判断CT序列图像是否全部分割完成,否则转(2)继续,直到所有图像分割完成。
(1)在第一张CT图像的待分割区域中人工选取一个种子点,并把该种子点保存到种子队列Q中,然后利用四邻域的生长规则,如图2所示,按逆时针方向进行种子点生长具体实现是:先计算该种子点及其相邻四个点的灰度值,分别用Gray, Gray1,Gray2,Gray3和Gray4表示,然后根据灰度相似性判决,确定这四个相邻的点是否可以做为新的种子点,如果可以则把它保存到种子队列Q中,再在队列中取下一个种子点,继续上面的步骤,直到队列为空,这样得到第一张CT图像的要分割区域的结果,用点集A表示,同时用两个数组分别保存点集A中每个点的X坐标(用Seed_x保存)和Y坐标(用Seed_y保存),并计算出该目标区域的平均灰度值(用AveGray表示)和方差(用Squre表示)。
(2)将上张分割结果点集A中所有的点投影到下一张CT图像上,这样得到一个投影点集,用B来表示。这里考虑到,在CT序列图像中,下一张图像待分割的目标区域可能比上一张分割出来的
目标区域要小,所以点集B中的点不一定都能作为种子生长点,必须对其进行一些优化。具体解决方法是这样的:计算点集B中所有点的灰度值并将它们与AveGray比较判断(阀值设定为方差Squere的值),确定哪些点可以作为种子点,这样可以得到种子点集,用C来表示,同时用数组Seedx和Seedy保存这些种子点的X坐标和Y坐标。
(3)算法考虑到,在CT序列图像中,下一张图像待分割的目标区域可能比上一张分割出来的目
标区域要大,所以用四邻域方法对种子点集C进行轮廓提取,得到一组轮廓点集,用D来表示,接
着用四领域的生长规则,根据灰度相似性判决,对轮廓点集D中所有点进行区域生长,这里的阀值设定为AveGray,把满足生长规则的点保存到点集A中,最终得到该张CT图像待分割目标的结果。
(4)判断CT序列图像是否全部分割完成,否则转(2)继续,直到所有图像分割完成。