2017-10-07 85 views
-1

我有兩個相同大小的灰度圖像,其中之一是這一個:enter image description here如何更改僅白色像素的背景?

我想爲此圖像添加背景,即將白色像素更改爲相應像素其他圖片。我設法做到的最好結果只是兩個圖像的所有像素的位和像,但由此產生的圖像在詹姆斯邦德內部被扭曲。我也嘗試了兩張圖片之間的加權加法,但是當我增加詹姆士邦德圖片的權重時,白色像素在結果圖像中可見。

回答

0

要與第二張圖片合併,請確保兩張圖片的尺寸相同(您的尺寸相同)。然後,他們可以結合

import cv2 

img_jb = cv2.imread('james_bond.png')  
img_007 = cv2.imread('007_logo.png') 

height, width, channels = img_jb.shape 
img_007_resized = cv2.resize(img_007, (width, height), interpolation=cv2.INTER_CUBIC) 

threshold = img_jb > 240 
img_jb[threshold] = img_007_resized[threshold] 

cv2.imwrite('james_bond_logo.png', img_jb) 

給你:

combined image

numpy的允許您在一個陣列的匹配給定條件的索引工作。這具有將背景圖像中的像素複製到前景圖像中的效果,其中前景圖像具有大於240的值。

+0

這適用於我,但我有圍繞圖的白色輪廓的問題。 – ninesalt

+0

去除白邊比較複雜。這將需要創建一個合適的面具和羽化邊緣。這可以使用OpenCV函數完成,但不能輕鬆使用純粹的numpy功能。 –