如何使用python将二进制图像转换为灰度和RGB?

时间:2018-05-30 02:54:11

标签: python opencv image-processing

我正致力于从皮肤病变图像中去除毛发。有没有办法将二进制文件转换回rgb?

原始图片:

enter image description here

面具图片:

enter image description here

我只想用原始图像恢复黑色区域。

2 个答案:

答案 0 :(得分:0)

据我所知,二进制图像以opencv值1 - > 255进行灰度存储。

要创建“虚拟”RGB图像,您可以执行以下操作: rgb_img = cv2.cvtColor(binary_img, cv.CV_GRAY2RGB)

我把它们称为“虚拟”,因为在这些图像中,红色,绿色和蓝色值是相同的。

答案 1 :(得分:0)

这样的东西,但你的面具尺寸错误(200x200像素),所以它不匹配你的图像(600x450像素):

#!/usr/local/bin/python3
from PIL import Image
import numpy as np

# Open the input image as numpy array
npImage=np.array(Image.open("image.jpg"))
# Open the mask image as numpy array
npMask=np.array(Image.open("mask2.jpg").convert("RGB"))

# Make a binary array identifying where the mask is black
cond = npMask<128

# Select image or mask according to condition array
pixels=np.where(cond, npImage, npMask)

# Save resulting image
result=Image.fromarray(pixels)
result.save('result.png')

enter image description here