訂閱
糾錯(cuò)
加入自媒體

使用 Python 將綠屏背景替換成自定義圖片

你有沒有想過我們?nèi)绾巫约禾鎿Q圖像中的綠屏背景?

在這里,將教你如何使用 Python 和 OpenCV 替換具有綠屏背景的圖像。

讓我們進(jìn)入正題,首先將拍攝兩張圖像作為我們程序的輸入,一張是綠屏背景的圖像,另一張是將設(shè)置成背景的圖像。

帶有綠屏背景的圖像和要設(shè)置的背景圖像

首先,你需要安裝一些必需的庫,例如 OpenCV 和 cvzone。

要安裝這些庫,只需打開命令提示符或終端并鍵入以下內(nèi)容,然后按 Enter。

pip install opencv-python
pip install cvzone

安裝庫后,導(dǎo)入安裝的庫并讀取這兩個(gè)圖像,如下所示,

# Importing libraries
import cv2
from cvzone.SelfiSegmentationModule import SelfiSegmentation
# Reading the green screen and background image
green_screen_img = cv2.imread("Green Screen Image Path")
bg_img = cv2.imread("Background Image Path")

兩個(gè)圖像應(yīng)具有相同的尺寸(相同的寬度和高度)。使用shape屬性檢查尺寸(返回高度、寬度、通道)。如果兩個(gè)圖像的尺寸不同,則使用cv2.resize() 將這些圖像的尺寸調(diào)整為相同的尺寸。

# Checking dimensions
print(green_screen_img.shape)
print(bg_img.shape)
# In my case both are having different dimension.
# So, I have to resize my images to same dimensions.
w, h = 640, 480
green_screen_img = cv2.resize(green_screen_img, (w, h))
bg_img = cv2.resize(bg_img, (w, h))

調(diào)整圖像大小后,為SelfiSegmentation創(chuàng)建一個(gè)從cvzone.SelfiSegmentationModule導(dǎo)入的對(duì)象,然后從該對(duì)象調(diào)用一個(gè)函數(shù)removeBG(),該函數(shù)接受三個(gè)參數(shù)。

源圖像背景圖像/背景顏色閾值(默認(rèn) = 0.1)(可選)output_1 = segmentor.removeBG(green_screen_img, bg_img)
cv2.imshow("Output-1", output)
cv2.waitKey(0)

具有默認(rèn)閾值 (0.1) 的輸出圖像

output_2 = segmentor.removeBG(green_screen_img, bg_img, threshold=0.4)
cv2.imshow("Output-2", output_2)
cv2.waitKey(0)

輸出閾值為 0.4 的圖像

注意:最大閾值可以是1。如果閾值設(shè)置為 1,則整個(gè)圖像被背景圖像占據(jù),如下所示,

output_3 = segmentor.removeBG(green_screen_img, bg_img, threshold=1)
cv2.imshow("Output-3", output_3)
cv2.waitKey(0)

閾值為 1 的輸出圖像

你也可以在BGR(藍(lán)色、綠色、紅色)值中指定顏色,而不是將圖像指定為背景,如下圖所示,

# In my case, I am choosing Red color as background
# RED - (0, 0, 255)
output = segmentor.removeBG(green_screen_img, (0, 0, 255))
cv2.imshow("Output", output)
cv2.waitKey(0)

以紅色為背景的輸出圖像

       原文標(biāo)題 : 使用 Python 將綠屏背景替換成自定義圖片

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)