How to segment image with location wanted.

4 ビュー (過去 30 日間)
mohd akmal masud
mohd akmal masud 2021 年 12 月 9 日
コメント済み: yanqi liu 2021 年 12 月 9 日
Hi Everyone. I Have Code below. But the image look like unwanted segmentation. Because I just want the volume that in red circle only. I just write the location that I want, but result stil same.
clc
clear all
[spect map]=dicomread('ArifSyazwan.dcm');
info = dicominfo('ArifSyazwan.dcm');
%gp=info.SliceThickness;
spect=(squeeze(spect));%smooth3
aa=size(spect);aa=aa(3);
imshow3D(spect);
T = adaptthresh(spect, 0.000000001);
%change grey to binary
BW = imbinarize(spect,T);
%open image
figure
imshow3D(BW(56:65, 72: 62)); % which is the location that we want
% CC = bwconncomp(BW);
% [r, c] = cellfun(@(x) ind2sub(size(BW), x), CC.PixelIdxList, 'UniformOutput', 0);
data = regionprops('table', BW,'Area','Centroid')
Should be the image appear like below that I want
Anyone can help me?

回答 (2 件)

yanqi liu
yanqi liu 2021 年 12 月 9 日
yes,sir,may be uload ArifSyazwan.dcm to do some analysis,such as
clc
clear all
[spect map]=dicomread('ArifSyazwan.dcm');
info = dicominfo('ArifSyazwan.dcm');
%gp=info.SliceThickness;
spect=(squeeze(spect));%smooth3
aa=size(spect);aa=aa(3);
imshow3D(spect);
T = adaptthresh(spect, 0.000000001);
%change grey to binary
BW = imbinarize(spect,T);
BW = bwselect(BW, round(mean(72: 62)), round(mean(56:65)));
%open image
figure
imshow3D(BW); % which is the location that we want
% CC = bwconncomp(BW);
% [r, c] = cellfun(@(x) ind2sub(size(BW), x), CC.PixelIdxList, 'UniformOutput', 0);
data = regionprops('table', BW,'Area','Centroid')
  1 件のコメント
mohd akmal masud
mohd akmal masud 2021 年 12 月 9 日
got error
Error using bwselect
Expected input number 1, BW, to be two-dimensional.
Error in bwselect>ParseInputs (line 262)
validateattributes(BW,{'logical' 'numeric'},{'2d' 'nonsparse'}, ...
Error in bwselect (line 55)
[xdata,ydata,BW,xi,yi,r,c,n,newFig] = ParseInputs(varargin{:});
Error in adaptivethreshold (line 35)
BW = bwselect(BW, round(mean(52: 66)), round(mean(57:76)));

サインインしてコメントする。


mohd akmal masud
mohd akmal masud 2021 年 12 月 9 日
I used this one, settled sir. TQ very much
T = adaptthresh(spect, 0.000000001);
%change grey to binary
BW = imbinarize(spect,T);
C = 66;
R = 59;
P = 52;
BW = bwselect3(BW,C,R,P);
%open image
figure
imshow3D(BW)
  1 件のコメント
yanqi liu
yanqi liu 2021 年 12 月 9 日
yes,use select can get the target area,in 3D use bwselect3,it is great!

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by