备注
转到结尾 下载完整示例代码。或在 Binder 上通过浏览器运行此示例。
使用修复技术恢复斑点角膜图像#
光学相干断层扫描(OCT)是一种非侵入性成像技术,眼科医生用它来拍摄患者眼睛后部的图像 [1]。在进行OCT时,灰尘可能会粘附在设备的参考镜上,导致图像上出现暗斑。问题在于这些污点覆盖了活体组织区域,从而隐藏了感兴趣的数据。我们的目标是根据这些区域边界附近的像素来恢复(重建)被隐藏的区域。
本教程改编自Jules Scholler [2] 分享的应用程序。图片由Viacheslav Mazlin获取(参见 skimage.data.palisades_of_vogt()
)。
import matplotlib.pyplot as plt
import numpy as np
import plotly.io
import plotly.express as px
import skimage as ski
我们在这里使用的数据集是一个人体活体组织的图像序列(一部电影!)。具体来说,它展示了一个给定角膜样本的 Vogt栅栏。
加载图像数据#
image_seq = ski.data.palisades_of_vogt()
print(f'number of dimensions: {image_seq.ndim}')
print(f'shape: {image_seq.shape}')
print(f'dtype: {image_seq.dtype}')
number of dimensions: 3
shape: (60, 1440, 1440)
dtype: uint16
该数据集是一个包含60帧(时间点)和2个空间维度的图像堆栈。让我们通过每隔六个时间点采样来可视化10帧:我们可以看到一些光照变化。我们利用了Plotly的``imshow``函数中的``animation_frame``参数。顺便提一下,当``binary_string``参数设置为``True``时,图像以灰度表示。
fig = px.imshow(
image_seq[::6, :, :],
animation_frame=0,
binary_string=True,
labels={'animation_frame': '6-step time point'},
title='Sample of in-vivo human cornea',
)
fig.update_layout(autosize=False, minreducedwidth=250, minreducedheight=250)
plotly.io.show(fig)