产品妹子在工作群里问谁能免费帮她换个证件照的背景色,这个时候就显出划水的我来了,上来自告奋勇,妹子把证件照发来,我赶紧打开Python,三下五除二就撸了一个换背景色的代码,妹子崇拜的跟我说谢谢哥哥。我心里咯咯咯,表面淡定的说,小事小事。好了故事就编到这了,故事的中心思想是,空有一身武艺,铁子你得支棱起来啊,上代码!!!!
把Python3 搞里头!!!
把cv2搞里头!!!
把numpy搞里头!!!
import cv2
import numpy as np
import sys
def change(sourcefile,savepath,colortype):
# 读取照片
image=cv2.imread(sourcefile)
# 图像缩放
img = cv2.resize(image,None,fx=0.5,fy=0.5)
rows,cols,channels = img.shape
# 图片转换为灰度图
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
# 图片的二值化处理
#红底变蓝底
if colortype == '1':
lower_blue = np.array([0,135,135])
upper_blue = np.array([180,245,230])
mask = cv2.inRange(hsv, lower_blue, upper_blue)
# #蓝底变红底
if colortype == '2':
lower_red = np.array([90,70,70])
upper_red = np.array([110,255,255])
mask = cv2.inRange(hsv, lower_red, upper_red)
#腐蚀膨胀
erode=cv2.erode(mask,None,iterations=1)
dilate=cv2.dilate(erode,None,iterations=1)
# 遍历像素点,进行颜色的替换
for i in range(rows):
for j in range(cols):
if dilate[i,j]==255:
if colortype == '1':
img[i,j]=(255,0,0)
elif colortype == '2':
img[i, j] = (255, 255, 255) # 变白底
cv2.imwrite(savepath, img)
if __name__ == '__main__':
sourcefile = sys.argv[1]
savepath = sys.argv[2]
colortype = sys.argv[3]
change(sourcefile,savepath,colortype)
简单实用,最后就看你们能不能把妹子搞里头了!!!看不懂代码的留言,如果把妹这件事还用我教你们的话,那你代码真是白写了,散会!!!
推广一下个人工具站,点击这里我把一些Python实现的小工具做到网站上了,代码不会写的,直接用这个免费的