3D 매트릭스의 30 조각을 표시하려고합니다. MATLAB 슬라이스 명령을 사용하고 있습니다. 내 데이터는 원형 대칭을 가지며 중요한 부분은 대칭 축 근처에 있습니다. 슬라이스 명령을 사용할 때 제 데이터의 제로 부분은 중요한 데이터를 모릅니다. 첨부 된 코드에 의해 작성된 아래 그림을 참조하십시오. 나는 각 조각 (파란색 영역)의 중요하지 않은 부분을 완전히 투명하게 만들고 싶다. 어떻게해야합니까? Suever의 대답에 따라 수정 후3D 데이터 행렬의 값에 따라 슬라이스 (MATLAB 슬라이스 함수에서)의 일부분을 투명하게 만드는 방법은 무엇입니까?
이코드 : (! 아직 작동하지 않습니다)
는 문제가 될 것으로 보인다 무엇 ??? -Answer : 나는 alpha
를 사용하여 0.5로 전체 슬라이스에 대해 같은 알파 값을 설정하는 것보다 오히려 '보정시'
function presentFig4_ver3
close all; clc;
load('img3D_shrinked.mat' , 'im3' , 'y_n_mm' , 'xticksVec_mm')
[X,Y,Z]=meshgrid(y_n_mm,y_n_mm,xticksVec_mm);
slices=xticksVec_mm; %= 0.23:0.1:(0.23+((30-1)*0.1)); %This is the same as xticksVec_mm
len_slices=length(slices);
h=zeros(1,len_slices);
for ind=1:len_slices
h(ind)=slice(X,Y,Z, im3, [],[],[slices(ind)]);
set(h(ind),'EdgeColor','none','FaceColor','interp','AlphaData',(im3>0.001)*0.1);
set(gca,'ZDir','reverse')
hold on
end
end % of function
안녕하세요 수에버, 귀하의 솔루션이 나를 위해 작동하지 않습니다. 나는 질문 편집에 나의 코드를 보여줄 것이다. –
문제점을 발견했습니다. FaceAlpha 속성을 'interp'로 설정해야했습니다. 도와 주셔서 감사합니다! –
@O.T. 오, 그래, 미안해. 나는 처음에'FaceColor'를'interp'로'FaceAlpha'로 읽었습니다. 내 대답을 업데이트하여'FaceAlpha'를 포함 시켰습니다. – Suever