人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

使用python半分鐘輕松完成證件照換底色

發(fā)布日期:2022-01-31 13:19 | 文章來源:CSDN

導(dǎo)語

小伙伴們都知道,剛?cè)肼毜臅r(shí)候都是要求新人入職帶著自己的證件照的,這應(yīng)該是幾寸的來著,小編入職這么久都忘記了!??!

昨天下班之后跟之前的老朋友聚餐,其實(shí)一個(gè)兄弟的跟我說:“老表,你現(xiàn)在是編程的,又沒得辦法幫我一個(gè)忙?” 我這一聽:“什么事兒?你說”

“我老婆前幾天剛?cè)肼毿鹿?,但是入職之后才曉得照片是需要藍(lán)底兒的,主要是那個(gè)照證件照的離家太遠(yuǎn)了,索性問下你有啥辦法沒?“

那當(dāng)然,為了節(jié)省他們的時(shí)間,這小忙我義不容辭,也就幾分鐘的事兒。​

正文

環(huán)境安裝部分(1):

Python3.6;

numpy函數(shù)庫(kù);

opencv庫(kù)。

pip install numpy

pip install opencv-python

證件照的讀取與縮放比列(2):

# step1:
讀取照片img = cv2.imread(file)
# step2:
縮放圖片()img = cv2.resize(img, None, fx=1.5, fy=1.5)rows, cols, channels = img.shape

三色圖片有RGB三個(gè)顏色通道,無法進(jìn)行腐蝕和膨脹的操作。

這個(gè)就需要我們將彩色圖片轉(zhuǎn)換為hsv灰度圖像后,再完成腐蝕和膨脹的操作(3):

# 展示圖片
cv2.imshow("original...", img)# step2.1 
圖片轉(zhuǎn)換為灰度圖并顯示hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

將圖片進(jìn)行二值化處理(4):

紅底變藍(lán)底,將在兩個(gè)閾值內(nèi)的像素值設(shè)置為白色(255)

而不在閾值區(qū)間內(nèi)的像素值設(shè)置為黑色(0)

lower_red= np.array([0,125,125])
upper_red = np.array([255,255,255])
mask = cv2.inRange(hsv, lower_red, upper_red)

圖象的腐蝕和膨脹、遍歷每個(gè)像素點(diǎn)進(jìn)行顏色替換(5):

#step3:腐蝕膨脹 若是腐蝕膨脹后仍有白色噪點(diǎn),可以增加iterations的值
erode = cv2.erode(mask, None, iterations=5)
# cv2.imshow('erode', erode)dilate = cv2.dilate(erode, None, iterations=7)
# step3.1遍歷每個(gè)像素點(diǎn),進(jìn)行顏色的替換'''
#若是想要將紅底變成藍(lán)底img[i,j]=(255,0,0),
#若是想將藍(lán)底變?yōu)榧t底則img[i,j]=(0,0,255),
#若是想變白底
img[i,j]=(255,255,255)'''for i in range(rows):  
  for j in range(cols):  
  if dilate[i,j] ==255: 
# 像素點(diǎn)255表示白色,180為灰度img[i,j]=(255,0,0) 
# 此處替換顏色,為BGR通道,不是RGB通道

圖片效果:

​​​​​​​​​​​

​​​​​

附源碼:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import cv2
import numpy as np
file=r".\\pic\\小姐姐.png"
# step1:讀取照片
img = cv2.imread(file)
# step1.2:縮放圖片()
img = cv2.resize(img, None, fx=1.5, fy=1.5)
rows, cols, channels = img.shape
# 展示圖片
cv2.imshow("original...", img)
# step2.1 圖片轉(zhuǎn)換為灰度圖并顯示
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# :圖片的二值化處理
# 紅底變藍(lán)底
# 將在兩個(gè)閾值內(nèi)的像素值設(shè)置為白色(255),
#而不在閾值區(qū)間內(nèi)的像素值設(shè)置為黑色(0)
# 
lower_red= np.array([0,125,125])
upper_red = np.array([255,255,255])
mask = cv2.inRange(hsv, lower_red, upper_red) 
#step2.3:腐蝕膨脹 若是腐蝕膨脹后仍有白色噪點(diǎn),可以增加iterations的值
erode = cv2.erode(mask, None, iterations=5)
# cv2.imshow('erode', erode)
dilate = cv2.dilate(erode, None, iterations=7) 
# step3遍歷每個(gè)像素點(diǎn),進(jìn)行顏色的替換
'''
#若是想要將紅底變成藍(lán)底img[i,j]=(255,0,0),
#若是想將藍(lán)底變?yōu)榧t底則img[i,j]=(0,0,255),
#若是想變白底img[i,j]=(255,255,255)
'''
for i in range(rows):
 for j in range(cols):
  if dilate[i,j] ==255: # 像素點(diǎn)255表示白色,180為灰度
img[i,j]=(255,0,0) # 此處替換顏色,為BGR通道,不是RGB通道 
#step4 顯示圖像
new_file=r".\\pic\\小姐姐_blue.png"
cv2.imwrite(new_file, img)
res = cv2.imread(new_file)
cv2.imshow('result...', res)
# 窗口等待的命令,0表示無限等待
cv2.waitKey(0)

安啦!換證件照的小程序就寫好了。換上自己的圖片試試叭??!

以上就是使用python半分鐘輕松完成證件照換底色的詳細(xì)內(nèi)容,更多關(guān)于python完成證件照換底色的資料請(qǐng)關(guān)注本站其它相關(guān)文章!

海外服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部