'horzcat' error when using dicomread() within a for-loop

1 visualización (últimos 30 días)
Roman Hochuli
Roman Hochuli el 21 de Feb. de 2011
Editada: Walter Roberson el 22 de En. de 2017
Hi
I have a set of 460 DICOM files that I would like to read in one-by-one, subtract 1000 from each pixel, and write them out as DICOM files. I have tried the following code, but continue to get an errror saying "CAT arguments dimensions are not consistent":
I=zeros(512,512);
for i=0:459
I=dicomread(['IMG (' int2str(i) ').dcm']);
I=im2double(I);
I=I-(1000*ones(size(I)));
I=int16(I);
dicomwrite([I,'IMG (' int2str(i) '.dcm'])
end;
I assume this problem comes from a line in dicomwrite(), but I can't work out how to change this.
Any suggestions would be much appreciated.
Thanks,
Roman

Respuesta aceptada

Richard
Richard el 21 de Feb. de 2011
In the call to dicomwrite you have tried to concatenate the matrix of pixel data (I) with the name of the file - basically, you put the "I," in the wrong place. Also, I noticed that you've removed a ")" in the output filename that you probably meant to keep? Try this to write back to the same file:
dicomwrite(I, ['IMG (' int2str(i) ').dcm'])
  1 comentario
Roman Hochuli
Roman Hochuli el 21 de Feb. de 2011
Thank you for your answer.
I don't know why I didn't spot that earlier.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Geometric Transformation and Image Registration en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by