首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何去除巨蟒CT图像中的CT层/阴影?

如何去除巨蟒CT图像中的CT层/阴影?
EN

Stack Overflow用户
提问于 2022-07-11 19:03:00
回答 1查看 143关注 0票数 0

我正在处理三维CT图像,并试图从床上移除线条。

原始图像中的一个片段:

下面是生成掩码的代码:

代码语言:javascript
复制
segmentation = morphology.dilation(image_norm, np.ones((1, 1, 1)))
labels, label_nb = ndimage.label(segmentation)    
label_count = np.bincount(labels.ravel().astype(int))
label_count[0] = 0

mask = labels == label_count.argmax()
 
mask = morphology.dilation(mask, np.ones((40, 40, 40)))
mask = ndimage.morphology.binary_fill_holes(mask) 
mask = morphology.dilation(mask, np.ones((1, 1, 1)))

这将产生以下图像:

正如你所看到的,在上面的图像中,CT扫描也是扭曲的。

如果我将:mask = morphology.dilation(mask, np.ones((40, 40, 40)))更改为mask = morphology.dilation(mask, np.ones((100, 100, 100))),则生成的映像如下:

如何在不改变图像区域的情况下只删除图像下的两条线?任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2022-08-08 14:25:00

你可能已经找到另一个解决方案了。无论如何,我已经在SO上看到过类似的CT处理问题,并且认为演示Scikit-Image解决方案会有帮助。这是最终结果。

这是生成上述图像的代码。

代码语言:javascript
复制
from skimage import io, filters, color, morphology
import matplotlib.pyplot as plt
import numpy as np 

image = color.rgba2rgb(
    io.imread("ctimage.png")[9:-23,32:-9]
)
gray = color.rgb2gray(image)
tgray = gray > filters.threshold_otsu(gray)
keep_mask = morphology.remove_small_objects(tgray,min_size=463)
keep_mask = morphology.remove_small_holes(keep_mask)
maskedimg = np.einsum('ijk,ij->ijk',image,keep_mask)

fig,axes = plt.subplots(ncols=3)
image_list = [image,keep_mask,maskedimg]
title_list = ["Original","Mask","Imgage w/mask"]
for i,ax in enumerate(axes):
    ax.imshow(image_list[i])
    ax.set_title(title_list[i])
    ax.axis("off")
fig.tight_layout()

关于代码的注释

代码语言:javascript
复制
image = color.rgba2rgb(
    io.imread("ctimage.png")[9:-23,32:-9]
)
gray = color.rgb2gray(image)

当我从其中加载RGBA时,该映像被保存为RGBA。它需要在灰度中用于阈值函数。你的图像可能已经在灰度上了。此外,下载的图像显示轴标记。所以我才剪掉了这张照片。

代码语言:javascript
复制
maskedimg = np.einsum('ijk,ij->ijk',image,keep_mask)

我想将keep_mask应用到RGB映像的每个通道。掩码是二维阵列,图像是三维阵列。为了将掩码应用到图像中,我引用了这个previous question

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72943438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档