我想从我的医疗数据中提取基本事实。我在找一个能帮上忙的程序。我想做的事情如下。我想要选择一个特定的区域并将其设置为白色,而在另一个区域中将其设置为黑色。这样我就能掌握事实真相了。图片中有一些例子。注:我没有地面的事实,只有原始图像没有地面的事实。我需要从原始图像中绘制和提取此区域...enter image description here提前感谢您的帮助。
发布于 2020-03-30 16:39:40
让我们将您的图像拆分为两个组成部分,首先是image.png
第二,mask.png
现在,您可以在终端中使用ImageMagick,而无需编写任何代码。你有几个选择。您可以执行以下任一操作:
让我们首先使它们透明,所以我们有效地将蒙版复制到图像中,并将其视为alpha/透明层:
magick image.png mask.png -compose copyalpha -composite result.png
现在让我们通过选择原始图像和每个像素位置的蒙版中较暗的一个来使它们变黑-因此是darken
混合模式:
magick image.png mask.png -compose darken -composite result.png
请注意,如果使用第一种技术,看起来透明的原始信息仍然存在于图像中,并且可以检索-所以不要使用这种技术来隐藏机密信息。
如果要在PIL中使用Python中的透明度方法,可以执行以下操作:
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])
发布于 2020-03-30 22:04:45
我强烈推荐ITK - SNAP来完成这项任务。您可以手动为输入图像添加某些标签(在示例中,1表示前景,0表示背景),并可以非常轻松地导出地面实况。
https://stackoverflow.com/questions/60926313
复制相似问题