Quantcast
Channel: OpenCV Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 2088

Image blending results as a noise

$
0
0
I'm trying to blend 3 images. 1. First i overlay [photo.png](https://i.imgur.com/ZQSl4i9.png) over [base.png](https://i.imgur.com/i6o77oR.png) with some positioning. And it works. ![base_photo.png](https://i.imgur.com/5jghy2R.png) 2. Second i'm trying to overlay `effect.png` ![effect.png](https://i.imgur.com/xMNqtcR.png) over resulting image from previous step. The result looks like this ![result.png](https://i.imgur.com/NNrHHGZ.png) I'm using opencv blending described [here](https://docs.opencv.org/3.4/d5/dc4/tutorial_adding_images.html). 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?

Viewing all articles
Browse latest Browse all 2088

Trending Articles