換證件照背景

2021-09-29 09:41:38 字數 2033 閱讀 1016

分割出背景區域的掩膜(將影象轉成hsv格式,通過cv2.inrange()選出特定顏色區域的背景)

背景區域的掩膜:背景是白色,頭像部分是黑色的

對背景區域的掩膜取反,得到反掩膜(外黑裡白)

畫出與證件照相同大小的背景

新背景:新背景與掩膜按位與

分割頭像區域。反掩膜與原圖按位與

cv2.inrange(hsv,lower_range,upper_range)

將畫素值為lower_range,upper_range之間的畫素點置為255,其餘的置為0.

引數有三個

第乙個引數:hsv指的是原圖

第二個引數:lower_range指的是影象中低於這個lower_range的值,影象值變為0

第三個引數:upper_range指的是影象中高於這個upper_range的值,影象值變為0

# coding:utf-8

'''證件照換背景

)# 影象路徑

hsv = cv2.cvtcolor(img,cv2.color_bgr2hsv)

h,s,v = cv2.split(hsv)

# lowerblue = np.array([100, 100, 50])

## upperblue = np.array([130, 255, 255])

lowerblue = np.array([20

,120

,100])

#bgr

upperblue = np.array(

[130

,255

,200])

mask = cv2.inrange(hsv, lowerblue, upperblue)

# 背景是白,頭像是黑

mask_not = cv2.bitwise_not(mask)

# 外黑裡白

# 畫出藍色背景

print

(img.shape)

blank = np.zeros(img.shape,dtype = np.uint8)

color =

(218

,143,3

)# bgr

# color = (255,0,0)

background = cv2.rectangle(blank,(0

,0),

(425

,602

),color = color,thickness=-1

)# 全藍矩形背景

background = cv2.bitwise_and(background,background,mask=mask)

# 得到藍色背景,空出頭像部分

# 摳出頭像

head = cv2.bitwise_and(img,img,mask=mask_not)

# 頭像是原圖,背景是黑

# 合併

combination = cv2.bitwise_or(background,head)

# cv2.imshow('background',background)

# cv2.imshow('head',head)

# cv2.imshow('shu',combination)

cv2.imwrite(

'./shu.jpeg'

,combination)

# cv2.imshow('shu',mask)

# k = cv2.waitkey(0) # 無限等待乙個鍵擊,將此鍵擊存在k變數中

# if k == 27: # 27代表esc,可以檢視ascii碼表

# cv2.destroyallwindows() # 退出視窗

PS更換證件照顏色

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

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

本來是在找交通識別的程式,然後湊巧看見了證件照換底,於是學習了一下 一開始在網上找了乙個很普遍寫的程式,但是效果並不好,想要放棄了,然後看見了這個,參考 python opencv實現證件照換底功能 本人基於此做了一些改進,便於自己執行和除錯,還加了中值濾波,本人覺得效果還不錯 import cv2...

證件照更換背景 by PS 6

學校突然讓把藍色背景換成黃色,粗糙一點的話美圖秀秀 光影魔術手都可以,還是覺得ps更專業一點 最開始的方法是 影象 調整 替換顏色 拾取顏色 結果d45450,可行,結果比自己摳圖 快速選擇等都好,但是感覺目標顏色會和最終的結果顏色略有不同 第二次嘗試 選擇 色彩範圍 選定要剔除的顏色 ctrl e...