-1
我有兩個相同大小的灰度圖像,其中之一是這一個:如何更改僅白色像素的背景?
我想爲此圖像添加背景,即將白色像素更改爲相應像素其他圖片。我設法做到的最好結果只是兩個圖像的所有像素的位和像,但由此產生的圖像在詹姆斯邦德內部被扭曲。我也嘗試了兩張圖片之間的加權加法,但是當我增加詹姆士邦德圖片的權重時,白色像素在結果圖像中可見。
我有兩個相同大小的灰度圖像,其中之一是這一個:如何更改僅白色像素的背景?
我想爲此圖像添加背景,即將白色像素更改爲相應像素其他圖片。我設法做到的最好結果只是兩個圖像的所有像素的位和像,但由此產生的圖像在詹姆斯邦德內部被扭曲。我也嘗試了兩張圖片之間的加權加法,但是當我增加詹姆士邦德圖片的權重時,白色像素在結果圖像中可見。
要與第二張圖片合併,請確保兩張圖片的尺寸相同(您的尺寸相同)。然後,他們可以結合
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)
給你:
numpy的允許您在一個陣列的匹配給定條件的索引工作。這具有將背景圖像中的像素複製到前景圖像中的效果,其中前景圖像具有大於240
的值。
這適用於我,但我有圍繞圖的白色輪廓的問題。 – ninesalt
去除白邊比較複雜。這將需要創建一個合適的面具和羽化邊緣。這可以使用OpenCV函數完成,但不能輕鬆使用純粹的numpy功能。 –