python證件照 python實現證件照換底功能

2021-10-13 09:20:44 字數 1352 閱讀 5798

本來是在找交通識別的程式,然後湊巧看見了證件照換底,於是學習了一下~一開始在網上找了乙個很普遍寫的程式,但是效果並不好,想要放棄了,然後看見了這個,參考:python opencv實現證件照換底功能

本人基於此做了一些改進,便於自己執行和除錯,還加了中值濾波,本人覺得效果還不錯~

**:import cv2

import numpy as np

def cvtbackground(path,color):

功能:給證件照更換背景色(常用背景色紅、白、藍)

輸入引數:path:**路徑

color:背景色

im=cv2.imread(path)

im_hsv=cv2.cvtcolor(im,cv2.color_bgr2hsv) #bgr和hsv的轉換使用 cv2.color_bgr2hsv

#aim=np.uint8([[im[0,0,:]]])

#hsv_aim=cv2.cvtcolor(aim,cv2.color_bgr2hsv)

mask=cv2.inrange(im_hsv,np.array([im_hsv[0,0,0]-5,100,100]),np.array([im_hsv[0,0,0]+5,255,255])) #利用cv2.inrange函式設閾值,去除背景部分

mask1=mask #在lower_red~upper_red之間的值變成255

img_median = cv2.medianblur(mask, 5) #自己加,中值濾波,去除一些邊緣噪點

mask = img_median

mask_inv=cv2.bitwise_not(mask)

img1=cv2.bitwise_and(im,im,mask=mask_inv) #將人物摳出

bg=im.copy()

rows,cols,channels=im.shape

bg[:rows,:cols,:]=color

img2=cv2.bitwise_and(bg,bg,mask=mask) #將背景底板摳出

img=cv2.add(img1,img2)

image=

cv2.startwindowthread() #加了這個後在視窗按esc就可以關閉視窗

標準證件照尺寸

我們自己只做了證件照之後,如果要列印,後邊的工作就是修改 的尺寸,這裡將證件照尺寸給出。1英吋 2.54厘公尺 小1寸證件照 身份證大頭照 2.2 x 3.3 cm 1英吋證件照 2.5 x 3.5 cm 小2寸證件照 護照 3.3 x 4.8 cm 2寸證件照 3.5 x 4.5 cm 3.3英吋...

換證件照背景

分割出背景區域的掩膜 將影象轉成hsv格式,通過cv2.inrange 選出特定顏色區域的背景 背景區域的掩膜 背景是白色,頭像部分是黑色的 對背景區域的掩膜取反,得到反掩膜 外黑裡白 畫出與證件照相同大小的背景 新背景 新背景與掩膜按位與 分割頭像區域。反掩膜與原圖按位與 cv2.inrange ...

PS更換證件照顏色

ps是我們經常使用的設計軟體,在生活中使用的範圍也很廣,但是對於普通的使用者來說,也就是平時給自己的 美化一下,還有就是做一些證件照。今天和大家分享的是更改證件照的顏色,網上可能有很多,但是個人感覺都效果都不是很理想,要不就是很簡單,細節處理的很不好。不多說了,進入正題!首先開啟ps,雙擊工作區域,...