标记医学图像

时间:2020-03-30 08:04:56

标签: image-processing deep-learning labeling

我想从我的医疗数据中提取基本事实。我正在寻找一个可以帮助您解决此问题的程序。我想做的如下。 我想选择一个特定区域并将其设置为白色,而在其他区域将其设置为黑色。这样我就会掌握事实真相。图片中有示例。注意:我没有基本事实,只有原始图像,没有基本事实。我需要从原始图像中绘制并提取该区域... enter image description here谢谢您的帮助。

enter image description here

2 个答案:

答案 0 :(得分:2)

让我们将您的图像分为两个组成部分,首先是image.png

enter image description here

第二,mask.png

enter image description here

现在,您只需在终端中使用 ImageMagick ,而无需编写任何代码。您有两种选择。您可以:

  • 使结果中蒙版的黑色部分透明,或者
  • 在结果中将蒙版的黑色部分变黑。

首先让它们透明,所以我们有效地将蒙版复制到图像中并将其视为alpha /透明层:

magick image.png mask.png -compose copyalpha -composite result.png

enter image description here

现在,通过选择原始图像的较暗处和每个像素位置处的遮罩,将它们设为黑色,因此采用darken混合模式:

magick image.png mask.png -compose darken -composite result.png

enter image description here

请注意,如果您使用第一种技术,则显示为透明的原始信息仍保留在图像中并且可以检索-因此,请勿使用此技术隐藏机密信息。


如果要通过Python与PIL一起使用透明方法,可以执行以下操作:

from PIL import Image

# Read image and mask as PIL Images
im = Image.open('image.png').convert('RGB')
ma = Image.open('mask.png').convert('L')

# Merge in mask as alpha channel and save
im.putalpha(ma)
im.save('result.png')

或者,使用 OpenCV Numpy 的透明方法:

import cv2
import numpy as np

# Open image and mask as NMumoy arrays
im = cv2.imread('image.png')
ma = cv2.imread('mask.png', cv2.IMREAD_GRAYSCALE) 

# Merge mask in as alpha channel and save
res = np.dstack((im,ma))
cv2.imwrite('result.png', res)

如果要对Python和PIL / Pillow使用blacken方法,请使用:

from PIL import Image, ImageChops

# Read image and mask as PIL Images
im = Image.open('image.png').convert('RGB')
ma = Image.open('mask.png').convert('RGB')

# Choose darker image at each pixel location and save
res = ImageChops.darker(im, ma)
res.save('result.png')

如果要对 OpenCV 和Numpy使用blacken方法,请使用上面的代码,但将np.dstack()行替换为:

res = np.minimum(im, ma[...,np.newaxis])

答案 1 :(得分:0)

我强烈推荐ITK - SNAP来完成此任务。您可以使用某些标签来手动标记输入图像(在示例中为1标记为前景,0标记为背景),并非常舒适地导出groundtruth。