Python Image + Masking Image 합성

원본에 마스킹 이미지(Gray Scale)을 합성을 하는데 검은색 마스킹은 원본 색상을 그대로 흰색 부분은 원본을 옅어지도록 마스킹을 만들어 봤다. 새로운 개인 프로젝트를 하면서 만들어본 간단한 이미지 합성 테스트 프로그램이다.

 

from PIL import Image
import cv2

#Original Image
org_img = Image.open('lady2.jpg')
org_PixelMap = org_img.load()

#Mask Image
mask_img = Image.open('xxx.jpg')
mask_PixelMap = mask_img.load()

#New Image
img = Image.new(org_img.mode, org_img.size)
pixelsNew = img.load()

for j in range(org_img.size[1]):
    for i in range(org_img.size[0]):
        x,y,z = mask_PixelMap[i,j]
        if x == 0 and y==0 and z==0:
            pixelsNew[i,j] = org_PixelMap[i,j]
        elif x==255 and y==255 and z==255:
            pixelsNew[i,j] = (255,255,255,255)
        else:
            a,b,c = org_PixelMap[i,j]
            rgba = int(a+x)
            if rgba > 255: rgba = 255
            rgbb = int(b+y)
            if rgbb > 255: rgbb = 255
            rgbc = int(c+z)
            if rgbc > 255: rgbc = 255
            pixelsNew[i,j] = (rgba, rgbb, rgbc, 255)

org_img.close()
mask_img.close()
img.save("result.jpg")
img.close()

img1=cv2.imread('lady2.jpg')
img2=cv2.imread('xxx.jpg')
img3=cv2.imread('result.jpg')

print(img3.shape)

cv2.imshow("org", img1)
cv2.imshow("mask", img2)
cv2.imshow("result", img3)
cv2.waitKey(0)

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤