Altering CT Volume voxel values in Matlab

8 visualizaciones (últimos 30 días)
Noha Asas
Noha Asas el 14 de Jul. de 2014
Comentada: Ben11 el 24 de Jul. de 2014
I am trying to alter some voxel values in Matlab.
I am using the following code:
for p=1:100
Vol(Vol(:,:,p) > 0) = 65535; %altering voxel values in the volume to 65535 if value > 0.
end
Unfortunately, I find all the values being altered, as if the condition is not working, although if i write Vol(Vol(:,:,1)>0)= 65535 immediately in the command line it works perfectly.
Any clue where the error is??

Respuesta aceptada

Ben11
Ben11 el 14 de Jul. de 2014
Editada: Ben11 el 14 de Jul. de 2014
It looks like when you use this line:
Vol(Vol(:,:,p) > 0) = 65535
you are in fact referring to a 2D matrix corresponding to a single channel from an image instead of a 3-channel image from your volume. I think it would save you trouble if you used this:
Vol(Vol > 0) = 65535;
instead of your for-loop, since you would then replace all the pixel values greater than 0 with 65535.
EDIT:
I just saw that you asked this question on Stack Overflow, good idea by the way, and that Ray provided a very thorough explanation! Anyhow I hope it is clearer for you now :)
  4 comentarios
Noha Asas
Noha Asas el 23 de Jul. de 2014
Many thanks again....that's very helpful :). Sorry for late response....was away from internet connection.
Ben11
Ben11 el 24 de Jul. de 2014
No problem! Glad I could help :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Image Processing Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by