I am having this error "Index in position 3 is invalid. Array indices must be positive integers or logical values." in my file. Can you please help me in resolving this.

8 ビュー (過去 30 日間)
I am trying to convert dataset from Nifti to PNG but the error is coming.
imds = imageDatastore('D:\DatasetNifti\control2', ...
'IncludeSubfolders',true,'LabelSource','foldernames','FileExtensions','.NII');
for i=1:numel(imds.Files)
info = niftiinfo(imds.Files{i});
x=info.ImageSize;
%fprintf('%d %d %d\n',x(1),x(2),x(3));
Y = niftiread(imds.Files{i});
img=uint16(Y(:,:,x(3)/2));
%imshow(img,[])
s=imds.Files{i};
s(end-2:end)='png';
imwrite(img,s);
end
After running the code below is a error which is coming.
Index in position 3 is invalid. Array indices must be positive integers or logical values.
Error in DataConversion (line 8)
img=uint16(Y(:,:,x(3)/2));

採用された回答

Antoni Garcia-Herreros
Antoni Garcia-Herreros 2023 年 4 月 13 日
編集済み: Antoni Garcia-Herreros 2023 年 4 月 13 日
Hello Muhammad,
Most likely your x(3) value will be and odd integer, therfore when you divide it by 2 you'll have a float.
You should round the result of x(3)/2
img=uint16(Y(:,:,round(x(3)/2)));

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeBiomedical Imaging についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by