Image blending results as a noise

asked 2019-11-05 12:14:40 -0500

MadEric gravatar image

updated 2019-11-05 14:03:28 -0500

I'm trying to blend 3 images.

  1. First i overlay photo.png over base.png with some positioning. And it works.

base_photo.png

  1. Second i'm trying to overlay effect.png

effect.png

over resulting image from previous step.

The result looks like this

result.png

I'm using opencv blending described here. I've tried to use cv2.addWeighted but the result was the same

# blending function
def img_overlay(background, overlay, x_offset, y_offset):
    y1, y2 = y_offset, y_offset + overlay.shape[0]
    x1, x2 = x_offset, x_offset + overlay.shape[1]

    alpha_s = overlay[:, :, 3] / 255.0
    alpha_l = 1.0 - alpha_s

    for c in range(0, 3):
        background[y1:y2, x1:x2, c] = (alpha_s * overlay[:, :, c] +
                                   alpha_l * background[y1:y2, x1:x2, c])

    return background

# First step
background = cv2.imread('base.png')
overlay = cv2.imread('photo.png', -1)
x_offset = 386
y_offset = 70
base_photo = img_overlay(background, overlay, x_offset, y_offset)

# Second step
overlay = cv2.imread('effect.png', -1)
final_photo = img_overlay(base_photo, overlay, 0, 0)

cv2.imwrite(result, final_photo)

How i can fix img_overlay function so it will overlay effect.png correctly?

edit retag flag offensive close merge delete

Comments

1

helo, can you upload your images here, not on an external site ? (edit and use upload image button) thank you ;)

berak gravatar imageberak ( 2019-11-05 12:18:20 -0500 )edit

@berak Sorry i can't. I'm getting 413 error when trying to upload an image here

MadEric gravatar imageMadEric ( 2019-11-05 12:36:50 -0500 )edit