我一直试图在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);
是否有任何特定功能值得尝试,或者是否有其他方法可以隔离圆心,以便我只能突出显示红色区域?任何见解将不胜感激!
我会通过以下步骤来解决这个问题:
对不起,我没有实际的代码来支持这种方法,但这会让你非常接近。您可能需要更多步骤来清理最终结果。