python實(shí)現(xiàn)摳圖給證件照換背景源碼
本文實(shí)例為大家分享了python實(shí)現(xiàn)摳圖給證件照換背景的具體代碼,供大家參考,具體內(nèi)容如下
import cv2
import numpy as np
import matplotlib.pyplot as plt
#建立顯示圖片的函數(shù)
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
#導(dǎo)入前景圖
img=cv2.imread('font.jpg') #圖片導(dǎo)入
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #轉(zhuǎn)換顏色模型
print(img.shape) #打印圖片規(guī)格
show(img) #顯示圖片
#導(dǎo)入背景圖
back_img = cv2.imread('back.jpg') #圖片導(dǎo)入
back_img = cv2.cvtColor(back_img,cv2.COLOR_BGR2RGB) #轉(zhuǎn)換顏色模型
print(back_img.shape) #打印圖片規(guī)格
show(back_img) #顯示圖片
#裁剪圖片
#img = img[0:1000,150:550] #裁剪圖片大小
#show(img) #顯示圖片
#縮放圖片
#print(img.shape) #打印圖片規(guī)格
#img=cv2.resize(img,None,fx=0.9,fy=0.9) #圖片縮小10%
#print(img.shape) #打印圖片規(guī)格
#拆分圖片信息
rows,cols,channels = img.shape #拆分圖片信息
#轉(zhuǎn)換格式
img_hsv = cv2.cvtColor(img,cv2.COLOR_RGB2HSV) #把圖片轉(zhuǎn)換成HSV格式,用于摳圖
show(img_hsv) #顯示圖片
#摳圖
lower_blue=np.array([0,0,0]) #獲取最小閾值
upper_blue=np.array([0,255,255]) #獲取最大閾值
mask = cv2.inRange(img_hsv, lower_blue, upper_blue) #創(chuàng)建遮罩
show(mask) #顯示遮罩
erode=cv2.erode(mask,None,iterations=3) #圖像腐蝕
show(erode) #顯示圖片
dilate=cv2.dilate(erode,None,iterations=1) #圖像膨脹
show(dilate) #顯示圖片
opening = cv2.morphologyEx(mask, cv2.MORPH_OPEN, cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (8,8))) #開運(yùn)算
show(opening) #顯示圖片
center = [400,800] #設(shè)置前景圖開始位置
for i in range(rows):
for j in range(cols):
if opening[i,j]==0: #代表黑色
back_img[center[0]+i,center[1]+j] =img[i,j] #賦值顏色
show(back_img) #顯示圖片
back_img = cv2.cvtColor(back_img,cv2.COLOR_RGB2BGR) #圖像格式轉(zhuǎn)換
back_img=cv2.resize(back_img,None,fx=0.8,fy=0.8) #圖像縮放20%
cv2.imwrite('result.png',back_img) #保存圖像
完整源碼:python實(shí)現(xiàn)摳圖給證件照換背景源碼
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python 機(jī)器學(xué)習(xí)之支持向量機(jī)非線性回歸SVR模型
這篇文章主要介紹了python 機(jī)器學(xué)習(xí)之支持向量機(jī)非線性回歸SVR模型,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
Win10環(huán)境python3.7安裝dlib模塊趟過的坑
這篇文章主要介紹了Win10環(huán)境python3.7安裝dlib模塊趟過的坑,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
PyQt5通過信號(hào)實(shí)現(xiàn)MVC的示例
這篇文章主要介紹了PyQt5通過信號(hào)實(shí)現(xiàn)MVC的示例,幫助大家更好的理解和使用pyqt5,感興趣的朋友可以了解下2021-02-02
django實(shí)現(xiàn)前后臺(tái)交互實(shí)例
本篇文章主要介紹了django實(shí)現(xiàn)前后臺(tái)交互實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
在matplotlib的圖中設(shè)置中文標(biāo)簽的方法
今天小編就為大家分享一篇在matplotlib的圖中設(shè)置中文標(biāo)簽的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python實(shí)現(xiàn)RGB與YCBCR顏色空間轉(zhuǎn)換
這篇文章主要介紹了python實(shí)現(xiàn)RGB與YCBCR顏色空間轉(zhuǎn)換,RGB與YCbCr顏色空間概念的與變換關(guān)系,包括內(nèi)容灰度值和亮度的關(guān)系、RGB顏色空間與顏色控制、YCbCr顏色空間及與RGB的變換關(guān)系,需要的小伙伴可以參考一下2022-03-03
Python lxml庫的簡(jiǎn)單介紹及基本使用講解
lxml是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的數(shù)據(jù),本文重點(diǎn)給大家介紹Python lxml庫的簡(jiǎn)單介紹及基本使用講解,感興趣的朋友跟隨小編一起看看吧2020-12-12
Python實(shí)現(xiàn)微信小程序自動(dòng)操作工具
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)微信小程序自動(dòng)化操作的小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-01-01

