如何将脑部分割后的CT切片精准划分为左右半区?
如何精准划分存在轻微倾斜的脑部CT分割图像的左右半区?
各位大佬好,我目前在处理脑部CT的分割图像,核心需求是把分割后的脑部精准划分为左右半区,进而计算每半区的脑部区域和出血区域面积。我手头有7张样本分割图像(不是连续切片,是覆盖了各类切片类型的样本)。
之前我采用的方法是:先找到图像中脑部区域的左右起始列索引,取二者的中点作为分割线,但因为脑部可能存在轻微的左右倾斜,这种简单的垂直中线划分方法没法得到精准的左右半区结果。
以下是我现有的Matlab实现代码:
img_dir = pwd; fileList = dir(img_dir); fileList = fileList(~ismember({fileList.name},{'.','..'})); num_of_slices = length(fileList); for idx = 1: num_of_slices fileName = fileList(idx).name; img_slice_path = fullfile(img_dir,fileName); imgs{idx} = imread(img_slice_path); figure(1), imshow(imgs{idx},[]); pause(0.5); end %% % seperate left and right based on midpoint of left_idx and right_idx [nrow, ncol] = size(imgs{1}); [leftBrain_imgs,rightBrain_imgs] = deal(cell(1,length(imgs))); for val = 1: length(imgs) tempImg = imgs{val}; columnsWithAllZeros = all(tempImg == 0); left_idx = find(~columnsWithAllZeros,1,'first'); right_idx = find(~columnsWithAllZeros,1,'last'); cent_idx = floor(mean([left_idx,right_idx])); rightImg_idxs = 1:cent_idx; % right side is shown left leftImg_idxs = cent_idx+1:ncol; % left side is shown right [leftBrain_img,rightBrain_img] = deal(zeros(nrow, ncol)); rightBrain_img(:,rightImg_idxs) = tempImg(:,rightImg_idxs); leftBrain_img(:,leftImg_idxs) = tempImg(:,leftImg_idxs); leftBrain_imgs{val} = leftBrain_img; rightBrain_imgs{val} = rightBrain_img; figure(2), subplot(121), imshow(rightBrain_imgs{val},[]), title('right brain'); subplot(122), imshow(leftBrain_imgs{val},[]), title('left brain'); pause(0.5) end
想请教下,针对脑部存在轻微倾斜的情况,有什么优化方法可以实现精准的左右半区划分?
内容的提问来源于stack exchange,提问作者Gopi
相关产品推荐
相关产品推荐

