注意
转到末尾 下载完整的示例代码。或通过 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 个空间维度的图像堆栈。让我们通过每 6 个时间点采样可视化 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)