python 实现证件照更换背景色,撩妹功能,速速来get

产品妹子在工作群里问谁能免费帮她换个证件照的背景色,这个时候就显出划水的我来了,上来自告奋勇,妹子把证件照发来,我赶紧打开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)

简单实用,最后就看你们能不能把妹子搞里头了!!!看不懂代码的留言,如果把妹这件事还用我教你们的话,那你代码真是白写了,散会!!!

推广一下个人工具站,

经验分享 程序员 微信小程序 职场和发展