OpenCV實(shí)戰(zhàn)之AI照片背景替換
導(dǎo)語(yǔ)
不少人在生活中都有摳人像圖換背景的需求。那怎么摳圖呢?
相信不少人第一時(shí)間就想到了 PS 摳圖大法,為了學(xué)會(huì) PS 摳圖很多人還花費(fèi)不少精力,而且學(xué)會(huì)后大家想必都有共同感觸:PS 摳圖在制作摳圖選區(qū)這個(gè)步驟太耗費(fèi)時(shí)間!!就跟我減肥似的!

今天木木子就手把手教大家編寫(xiě)一款摳圖人像技術(shù)——
這款小程序?qū)崿F(xiàn)一鍵智能摳取人像圖的功能,非常強(qiáng)大!
比 PS 慢慢摳圖效率可提升了太多了,而且還能讓不會(huì) PS 的群體也能輕松學(xué)會(huì)摳人像圖。
吹了這么多,讓我們正式開(kāi)始開(kāi)始敲代碼吧!
正文
那是怎么達(dá)到這個(gè)一鍵摳圖換背景的呢?
1)附主程序
# 日常縮放
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代表黑色的點(diǎn)
img_back[center[0] + i, center[1] + j] = img[i, j] # 此處替換顏色,為BGR通道
cv2.imshow('res', img_back)
cv2.waitKey(0)
cv2.destroyAllWindows()好啦!上面的摳圖換背景就是這個(gè)代碼的效果滴!
2)展示其他
那我們來(lái)看看我最近一直在用的另外一個(gè)摳圖app吧!這個(gè)摳圖效果其實(shí)比我代碼更好 哈哈哈哈~
想用什么背景換什么背景

總結(jié)
好啦!整個(gè)摳圖換背景的效果,你只需要掌握使用opencv,加上小小的【創(chuàng)意】,最后就能做出效果不錯(cuò),又有實(shí)用的不同背景圖來(lái),趕快自己也來(lái)試試吧~
到此這篇關(guān)于OpenCV實(shí)戰(zhàn)之AI照片背景替換的文章就介紹到這了,更多相關(guān)OpenCV照片背景替換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django使用django-simple-captcha做驗(yàn)證碼的實(shí)現(xiàn)示例
這篇文章主要介紹了Django使用django-simple-captcha做驗(yàn)證碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
python+pyqt5實(shí)現(xiàn)KFC點(diǎn)餐收銀系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python+pyqt5實(shí)現(xiàn)KFC點(diǎn)餐收銀系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Python 如何利用pandas和matplotlib繪制餅圖
這篇文章主要介紹了Python 如何利用pandas和matplotlib繪制餅圖,代碼使用了Pandas和Matplotlib庫(kù)來(lái)繪制店鋪銷(xiāo)售數(shù)量占比的餅圖,需要的朋友可以參考下2023-10-10
python udp如何實(shí)現(xiàn)同時(shí)收發(fā)信息
這篇文章主要介紹了python udp如何實(shí)現(xiàn)同時(shí)收發(fā)信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Python 實(shí)現(xiàn)平臺(tái)類(lèi)游戲添加跳躍功能
這篇文章主要介紹了Python 實(shí)現(xiàn)平臺(tái)類(lèi)游戲添加跳躍功能,,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
python按列索引提取文件夾內(nèi)所有excel指定列匯總(示例代碼)
這篇文章主要介紹了python按列索引提取文件夾內(nèi)所有excel指定列匯總,本文通過(guò)多種場(chǎng)景分析結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
jupyter?notebook內(nèi)核啟動(dòng)失敗問(wèn)題及解決方法
這篇文章主要介紹了解決jupyter?notebook內(nèi)核啟動(dòng)失敗問(wèn)題,本文給大家介紹了問(wèn)題原因分析及解決方案,圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
wxpython實(shí)現(xiàn)按鈕切換界面的方法
這篇文章主要為大家詳細(xì)介紹了wxpython實(shí)現(xiàn)按鈕切換界面的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11

