0

のシリーズがありbrain CT imagesます。目標は、脳をセグメント化してseparating brain into left and right halvesから、それぞれの脳領域と血液領域を計算することです。

シーケンスから選択された 7 つのサンプルのセグメント化された脳画像の zip ファイルを添付します ( 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.

これを行う方法についてのアイデアはありますか?

ありがとう、ゴピ

4

0 に答える 0