Как разделить сегментированные мозгом ломтики на левый и правый отсеки (половинки)? - PullRequest
0 голосов
/ 09 мая 2018

У меня есть серия brain CT images. Цель состоит в том, чтобы сегментировать мозг, а затем separating brain into left and right halves для вычисления площади мозга и площади крови в каждой половине.

Я прилагаю zip-файл из 7 образцов сегментированных изображений мозга, выбранных из последовательности (not continuous slices just slices that may cover all types of slices). Ссылка для образцов изображений

На этот вопрос I am trying to divide the brain into left and right compartments.

Я использовал, чтобы найти левый и правый начальные индексы изображения, чтобы разделить их пополам. Но это не дало точных результатов для разделения на левую и правую половинки.

Мой подход пока:

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

Note: The brain may be slightly tilted slightly to the left or right.

Есть идеи, как это сделать?

Спасибо, Гопи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...