2017-09-21 3 views
1

나는 둘 다 크기 [256x256x160]의 3D 이미지와 마스크를 가지고 있습니다. 마스크는과 같이 이미지에 마스크를 적용하면 0에서 255의 바이너리 이미지입니다 : 마스크 된 이미지가 잘못된 강도로 표시됩니다.

masked_image = image.*mask; 

내가 완전히 잘못 강도 값이있는 masked_image를 얻을. 실제로 그 값은 원래 이미지에서 찾을 수 없습니다. 그들은 너무 큽니다. 달성하고자하는 것은 마스크의 위치에서 원래 이미지의 강도를 추출하고 ROI의 평균값을 계산하는 것입니다. imshow에서 마스크가 이미지에 올바르게 정렬되어 있습니다. 그러나 마스크를 적용하는 것은 실패하고 왜 그 이유는 모르겠다.

답변

1

mask의 크기를 0에서 255로 조정하면 안됩니다. 원하는 방식으로 사용하려면 0 또는 1 만 사용해야합니다. 이러한 대체 방법 중 하나가 작동합니다.

masked_image = image.*logical(mask); 
% Or... 
masked_image = image.*(mask > 0); 
% Or... 
masked_image = image.*(mask./255); 
0

0과 255가 아닌 0과 1로 마스크를 변환하면 문제가 해결됩니다. 이제 추출 된 ROI가 정확한 강도를 갖습니다. 설명해 주셔서 감사합니다.

관련 문제