我一直在尝试在Matlab中填写二进制图像,这样我就像这样留下了这个像椭圆形图像的整体。
但是,我一直在遇到一个实际上能够定义红色区域的问题。我尝试过以下方法:
bwconvhull
函数准确填充形状,但后来我不知道如何摆脱内部形状以仅隔离红色区域。bwtraceboundary
函数只是跟随整个边界(在头骨的内侧和外侧)。bwconvhull是否有类似的功能,我可以从中心向外扩展一个区域?我主要的困难在于:(a)头骨的内部边界或(b)内部"黑色"大脑应该存在的区域。我的编码尝试可以在下面找到:
问题(a) - 追踪边界
hole=imread('Copy CT.jpg');
BW=im2bw(hole,.9);
dim=size(BW);
col=round(dim(2)/2);
row=min(find(BW(:,col)));
boundary = bwtraceboundary(BW,[row,col],'S');
x=boundary(:,2);
y=boundary(:,1);
问题(b) - 仅隔离中心
hole=imread('Copy CT.jpg');
BW=im2bw(hole,.9);
CH=bwconvhull(BW);
KH=CH-BW;
KH2=bwareaopen(KH,200);
是否有任何特定功能值得尝试,或者是否有其他方法可以隔离圆圈的中心,以便我只能突出显示红色区域?任何见解将不胜感激!
答案 0 :(得分:0)
我将通过以下步骤进行处理:
对不起,我没有支持该方法的实际代码,但这将使您更加接近。您可能需要更多步骤来清理最终结果。