OpenCV實(shí)戰(zhàn)之AI照片背景替換
導(dǎo)語
不少人在生活中都有摳人像圖換背景的需求。那怎么摳圖呢?
相信不少人第一時(shí)間就想到了 PS 摳圖大法,為了學(xué)會 PS 摳圖很多人還花費(fèi)不少精力,而且學(xué)會后大家想必都有共同感觸:PS 摳圖在制作摳圖選區(qū)這個(gè)步驟太耗費(fèi)時(shí)間!!就跟我減肥似的!
今天木木子就手把手教大家編寫一款摳圖人像技術(shù)——
這款小程序?qū)崿F(xiàn)一鍵智能摳取人像圖的功能,非常強(qiáng)大!
比 PS 慢慢摳圖效率可提升了太多了,而且還能讓不會 PS 的群體也能輕松學(xué)會摳人像圖。
吹了這么多,讓我們正式開始開始敲代碼吧!
正文
那是怎么達(dá)到這個(gè)一鍵摳圖換背景的呢?
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代表黑色的點(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)展示其他
那我們來看看我最近一直在用的另外一個(gè)摳圖app吧!這個(gè)摳圖效果其實(shí)比我代碼更好 哈哈哈哈~
想用什么背景換什么背景
總結(jié)
好啦!整個(gè)摳圖換背景的效果,你只需要掌握使用opencv,加上小小的【創(chuàng)意】,最后就能做出效果不錯(cuò),又有實(shí)用的不同背景圖來,趕快自己也來試試吧~
到此這篇關(guān)于OpenCV實(shí)戰(zhàn)之AI照片背景替換的文章就介紹到這了,更多相關(guān)OpenCV照片背景替換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django使用django-simple-captcha做驗(yàn)證碼的實(shí)現(xiàn)示例
這篇文章主要介紹了Django使用django-simple-captcha做驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01python+pyqt5實(shí)現(xiàn)KFC點(diǎn)餐收銀系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python+pyqt5實(shí)現(xiàn)KFC點(diǎn)餐收銀系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01Python 如何利用pandas和matplotlib繪制餅圖
這篇文章主要介紹了Python 如何利用pandas和matplotlib繪制餅圖,代碼使用了Pandas和Matplotlib庫來繪制店鋪銷售數(shù)量占比的餅圖,需要的朋友可以參考下2023-10-10python udp如何實(shí)現(xiàn)同時(shí)收發(fā)信息
這篇文章主要介紹了python udp如何實(shí)現(xiàn)同時(shí)收發(fā)信息,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Python 實(shí)現(xiàn)平臺類游戲添加跳躍功能
這篇文章主要介紹了Python 實(shí)現(xiàn)平臺類游戲添加跳躍功能,,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03python按列索引提取文件夾內(nèi)所有excel指定列匯總(示例代碼)
這篇文章主要介紹了python按列索引提取文件夾內(nèi)所有excel指定列匯總,本文通過多種場景分析結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03jupyter?notebook內(nèi)核啟動(dòng)失敗問題及解決方法
這篇文章主要介紹了解決jupyter?notebook內(nèi)核啟動(dòng)失敗問題,本文給大家介紹了問題原因分析及解決方案,圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04wxpython實(shí)現(xiàn)按鈕切換界面的方法
這篇文章主要為大家詳細(xì)介紹了wxpython實(shí)現(xiàn)按鈕切換界面的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11