Matlab在处理CT图像时如何去掉多余的孤点

大家好,我最近进行了CT实验,经过重建后利用Matlab进行图像处理。但是有两个问题没办法解决,请大家给予帮助。我的试件是圆柱体,重建后横截面呈圆形,有裂缝产生。
一是如何去掉试件外部的白色孤点,如下图中红线上部的白色孤点;
二是如何去掉产生的裂缝中的白色孤点,如下图中绿色框中所示,这两条裂缝已经贯通,是不应该有多余的杂质的。

之前,我是采用bwareaopen函数,bwareaopen(page{ii},1,8),p值从1到1000都试过,但是它针对的是把整张图片,把试件内部本身应该有的一些小目标也去掉了。我的思路是能不能采用边缘提取,先确定它的边缘,然后再去除小目标,不过本人是初学者,不知道如何能够提取边缘,希望大家给予帮助。谢谢

如果原图是不是二值图像的话可以先试试1楼所说的中值滤波

如果想处理问题中的二值图像,可以试试连通区域检测算法,统计各个连通区域的面积,然后将面积很小的白色连通区域填充为黑色。追问

这个图像已经二值化过了,也进行了滤波和去躁,它这个点是设备的系统误差。能不能把相关的函数告诉我下,谢谢。

追答

Matlab的连通区域函数我没用过,你可以参考下面的链接。

http://blog.csdn.net/abcjennifer/article/details/6672468

1、 matlab函数bwareaopen──删除小面积对象

格式:BW2 = bwareaopen(BW,P,conn)
作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。
算法:
(1)Determine the connected components.
L = bwlabeln(BW, conn);
(2)Compute the area of each component.
S = regionprops(L, 'Area');
(3)Remove small objects.
bw2 = ismember(L, find([S.Area] >= P));

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-12
先中值滤波一下看看效果