이미지 처리

마스크 정보로 해당 영역을 기존 이미지에 투명처리하기

wangkisa 2021. 4. 12. 11:45

PIL 로 하는 경우

from PIL import Image

# load images
img_org  = Image.open('original.jpg')
img_mask = Image.open('mask.jpg')

# convert images
#img_org  = img_org.convert('RGB') # or 'RGBA'
img_mask = img_mask.convert('L')    # grayscale

# the same size - 이미지 사이즈 조정 필요한 경우 
#img_org  = img_org.resize((400,400))
#img_mask = img_mask.resize((400,400))

# add alpha channel    
img_org.putalpha(img_mask)

# save as png which keeps alpha channel 
img_org.save('result.png')

 

cv2 로 하는 경우

import cv2

# load images
img_org  = cv2.imread('original.jpg')
img_mask = cv2.imread('mask.jpg')

# convert colors
#img_org  = cv2.cvtColor(img_org, ???)
img_mask = cv2.cvtColor(img_mask, cv2.COLOR_BGR2GRAY)


# add alpha channel 
b, g, r = cv2.split(img_org)
img_output = cv2.merge([b, g, r, img_mask], 4)

# write as png which keeps alpha channel 
cv2.imwrite('result.png', img_output)

 

원본
마스크
결과(투명 배경은 바로 안보여지므로 다운받아야 보여짐)
결과2(투명을 진한 회색 쪽으로 표현)