溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

OpenCV怎么實現(xiàn)AI照片背景替換

發(fā)布時間:2022-01-10 19:24:21 來源:億速云 閱讀:179 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“OpenCV怎么實現(xiàn)AI照片背景替換”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“OpenCV怎么實現(xiàn)AI照片背景替換”文章能幫助大家解決問題。

圖片

OpenCV怎么實現(xiàn)AI照片背景替換

1)附主程序

# 日??s放
rows, cols, channels = img_back.shape
img_back = cv2.resize(img_back, None, fx=0.7, fy=0.7)
cv2.imshow('img_back', img_back)
 
rows, cols, channels = img.shape
img = cv2.resize(img, None, fx=0.4, fy=0.4)
cv2.imshow('img', img)
rows, cols, channels = img.shape  # rows,cols最后一定要是前景圖片的,后面遍歷圖片需要用到
 
# 轉(zhuǎn)換hsv
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 獲取mask
lower_blue = np.array([78, 43, 46])
upper_blue = np.array([110, 255, 255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)
cv2.imshow('Mask', mask)
 
# 腐蝕膨脹
erode = cv2.erode(mask, None, iterations=1)
cv2.imshow('erode', erode)
dilate = cv2.dilate(erode, None, iterations=1)
cv2.imshow('dilate', dilate)
 
# 遍歷替換
center = [50, 50]  # 在新背景圖片中的位置
for i in range(rows):
    for j in range(cols):
        if dilate[i, j] == 0:  # 0代表黑色的點
            img_back[center[0] + i, center[1] + j] = img[i, j]  # 此處替換顏色,為BGR通道
cv2.imshow('res', img_back)
 
cv2.waitKey(0)
cv2.destroyAllWindows()

好啦!上面的摳圖換背景就是這個代碼的效果滴!

2)展示其他

那我們來看看我最近一直在用的另外一個摳圖app吧!這個摳圖效果其實比我代碼更好 哈哈哈哈~

2.1 我不說那張是原圖——你能猜出來嘛?

OpenCV怎么實現(xiàn)AI照片背景替換

2.2 從漫畫走進現(xiàn)實

OpenCV怎么實現(xiàn)AI照片背景替換

2.3 想用什么背景換什么背景

OpenCV怎么實現(xiàn)AI照片背景替換

關(guān)于“OpenCV怎么實現(xiàn)AI照片背景替換”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI