set opacity to M x N x P grayscale matrix
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
varun
el 25 de En. de 2014
Editada: Youssef Khmou
el 25 de En. de 2014
I have a matrix define as data = rand(M,N,P) where M = 262, N = 359, P = 562. Each element in the matrix gets assigned an intensity value for 0 - 255 depending on input scan data.
E.g. data(200,220,232) = 32 or data(200,220,233) = 156
How can i assign transparency to each element in the matrix based on the intensity value. For example: all intensities below 128 have 0.8 transparency, and every value between 128-255 has linear opacity from 0.1-0.4
This is all in Matlab.
Thank you
0 comentarios
Respuesta aceptada
Youssef Khmou
el 25 de En. de 2014
Logical operations can divide the elements, here is the starting point :
M=rand(262,359,562);
Threshold=0.45; % an example
E=M ;% matrix of transparency
E(E<Threshold)=0.8;
E(E>Threshold)=0.4;
2 comentarios
Youssef Khmou
el 25 de En. de 2014
Editada: Youssef Khmou
el 25 de En. de 2014
I can not understand your approach, the proposition i posted is from mathematical viewpoint, but making the transparency in 3D plot is something that needs more details
Más respuestas (1)
Walter Roberson
el 25 de En. de 2014
Transparency is a property of images, not of matrices. And there is no build-in method in MATLAB to create a 4-dimensional plot (three axis plus value at each point = 4 dimensions.) You have to define how you are planning to display the data, and then we can talk about transparency.
2 comentarios
Walter Roberson
el 25 de En. de 2014
I would have to look more closely at the program some time. I think it is creating patch objects with 3D volume areas (marching cubes algorithm I seem to recall.) If it is, then a patch() would have been generated; try
findobj(gca, 'type', 'patch')
Once you find that patch object, you can adjust it's AlphaCData property
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

