Улучшения трёхмерных изображений
По умолчанию, трёхмерные изображения не реагируют на освещение. Значения цвета определены только заданной функцией цвета.
код на языке Wolfram Language целиком
In[3]:=
![Click for copyable input](assets.ru/3d-image-enhancements/In_15.png)
img3d = Image3D[data, "Byte", options, ImageSize -> 400]
Out[3]=
![](assets.ru/3d-image-enhancements/O_22.png)
Включение объёмного освещения может помочь прояснить детали поверхности. В данном случае, добавлено направленное освещение, указывающее на плоскость экрана; также добавлена зеркальность к объекту изображения.
In[4]:=
![Click for copyable input](assets.ru/3d-image-enhancements/In_16.png)
ImageCrop[
Show[Graphics3D[Specularity[Orange, 3], Background -> Black],
Image3D[img3d, Method -> {"VolumeLighting" -> True}], options,
Lighting -> {{"Directional", White, ImageScaled[{0, 0, 2}]}},
ImageSize -> 700], {410, 410}]
Out[4]=
![](assets.ru/3d-image-enhancements/O_23.png)
Зернистые изображения могут быть улучшены путём интерполяции значений.
In[5]:=
![Click for copyable input](assets.ru/3d-image-enhancements/In_17.png)
fine = ImageCrop[
Show[Graphics3D[Specularity[Orange, 3], Background -> Black],
Image3D[img3d,
Method -> {"VolumeLighting" -> True,
"InterpolateValues" -> True}], options,
Lighting -> {{"Directional", White, ImageScaled[{0, 0, 2}]}},
ImageSize -> 700], {410, 410}]
Out[5]=
![](assets.ru/3d-image-enhancements/O_24.png)
Визуализируйте переход от оригинального до интерполированного и ярко освещённого изображения.
код на языке Wolfram Language целиком
In[7]:=
![Click for copyable input](assets.ru/3d-image-enhancements/In_19.png)
Animate[Overlay[{original, SetAlphaChannel[fine, i]}], {i, 0, 1},
AnimationRate -> 1/3, AnimationDirection -> ForwardBackward]
![](assets.ru/3d-image-enhancements/swf_5.png)
![](assets.ru/3d-image-enhancements/O_25.png)