plot - 如何创建用于显示 Ct 扫描 Makie.jl 的 julia 配色方案
问题描述
我使用 makie.jl 和 slicesNumb 来可视化 PET/CT 扫描,我有衰减值的 3d 数组,并且我使用滑块显示带有更改切片的热图 - 这很好用 我有两个问题
- 我不知道如何能够定义自定义颜色图(基本上我需要能够指定所有高于某个阈值的都是黑色,低于白色,并且两者之间的值将具有与衰减值成比例的灰度值)。
2)我希望能够在我的图像(技术热图)上显示另一个我可以控制透明度的图像 - 像素的 alpha 值 - 以显示一些注释/ PET ...
有效但没有这两个功能的代码及其外观
using GLMakie
```@doc
simple display of single image - only in transverse plane
```
function singleCtScanDisplay(arr ::Array{Number, 3})
fig = Figure()
sl_x = Slider(fig[2, 1], range = 1:1:size(arr)[3], startvalue = 40)
ax = Axis(fig[1, 1])
hm = heatmap!(ax, lift(idx-> arr[:,:, floor(idx)], sl_x.value) ,colormap = :grays)
Colorbar(fig[1, 2], hm)
fig
end
感谢帮助 !
解决方案
您可以使用Colors
and ColorSchemeTools
,但您需要根据您的阈值添加方案的顶部和底部。
using Colors, ColorSchemeTools
truemin = 0
truemax = 600
max_shown_black = 20
min_shown_white = 500
data = rand(truemin:truemax, (500, 500, 20))
grayscheme = [fill(colorant"black", max_shown_black - truemin + 1);
collect(make_colorscheme(identity, identity, identity,
length = min_shown_white - max_shown_black - 1));
fill(colorant"white", truemax - min_shown_white + 1)]
为了控制 alpha,我会添加一个带有 alpha 滑块的弹出窗口。查看一些可分发的 DICOM 工具作为示例。
推荐阅读
- javascript - 如何找到执行 eval 代码的 [content] 脚本
- r - R:如何根据 R 中另一行的值扩展一行中的值?
- html - 当html代码不直接包含选项时如何使一个按钮默认单选按钮
- axapta - Microsoft Dynamics ax 2012 如何从 2 个不同的表创建自动查找
- azure-devops - 在 Azure DevOps 中为不同环境提供不同测试用例集的最佳实践
- google-sheets - 谷歌电子表格条件格式 - 如果值高于则突出显示单元格
- jquery - 使用 jQuery 数组添加动态类名
- image-processing - 自适应傅里叶滤波器
- css - 角度/引导轮播中的图像不居中
- apache-nifi - NiFi:带有 QueryDatabaseTableRecord 组件的问题