输入:单通道的灰度图,灰度图内含不同像素值的掩膜mask
输出:灰度图内的掩膜mask在RGB图像中输出
方法很简单,就是读取灰度图,根据掌握的像素值信息,分别赋予不同的颜色值像素进行保存输出。
如下输入的单通道灰度图:
使用如下代码处理:
python
import os
import sys
import cv2
import numpy as np
def main():
mask_dir = './mask'
show_dir = './mask_out'
for mskf in os.listdir(mask_dir):
msfile = mask_dir + '/' + mskf
# msimg = cv2.imread(msfile, cv2.IMREAD_GRAYSCALE) 读出是单通道
msimg = cv2.imread(msfile)
# poly = mask2poly(msimg)
"""提供的mask的像素值是0,1,2,0是背景,现在在三通道图像中针对像素值赋予颜色像素"""
# msimg[msimg==1]=255
rms = msimg[:,:,0]
gms = msimg[:,:,1]
bms = msimg[:,:,2]
#1-0,255,0
rms[rms==1] = 0
bms[bms==1] = 255
gms[gms==1] = 0
#2-0,0,255
rms[rms==2] = 0
bms[bms==2] = 0
gms[gms==2] = 255
showimg = show_dir + '/' + mskf
cv2.imwrite(showimg,msimg)
if __name__ == '__main__':
main()
输出结果如下: