您的位置:首页 > 脚本大全 > > 正文

python批量图像换背景(详解Python给照片换底色蓝底换红底)

更多 时间:2021-10-28 10:42:47 类别:脚本大全 浏览量:2703

python批量图像换背景

详解Python给照片换底色蓝底换红底

现在网上出现了很多在线换底色的网页版工具是这么做的呢?其实用python就可以实现。

环境要求

python3
numpy函数库
opencv库

安装

下载适应版本的numpy函数库,我电脑是win10 64位,安装的函数库是
numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl

下载适应版本的opencv库,我电脑是win10 64位,安装的库是
opencv_python-3.3.1-cp36-cp36m-win_amd64.whl

安装以上两个库,win+r->cmd->cd到当前两个库所在的文件夹,输入以下命令逐步安装

  • ?
  • 1
  • 2
  • pip install numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl
  • pip install opencv_python-3.3.1-cp36-cp36m-win_amd64.whl
  • python批量图像换背景(详解Python给照片换底色蓝底换红底)

    代码

    在当前文件夹新建opencv.py,拷贝以下代码

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • import cv2
  • import numpy as np
  •  
  • img=cv2.imread('timg.jpg" alt="python批量图像换背景(详解Python给照片换底色蓝底换红底)" border="0" />)
  • #缩放
  • rows,cols,channels = img.shape
  • img=cv2.resize(img,none,fx=0.5,fy=0.5)
  • rows,cols,channels = img.shape
  • cv2.imshow('img',img)
  •  
  • #转换hsv
  • hsv=cv2.cvtcolor(img,cv2.color_bgr2hsv)
  • lower_blue=np.array([90,70,70])
  • upper_blue=np.array([110,255,255])
  • mask = cv2.inrange(hsv, lower_blue, upper_blue)
  • cv2.imshow('mask', mask)
  •  
  • #腐蚀膨胀
  • erode=cv2.erode(mask,none,iterations=1)
  • cv2.imshow('erode',erode)
  • dilate=cv2.dilate(erode,none,iterations=1)
  • cv2.imshow('dilate',dilate)
  •  
  • #遍历替换
  • for i in range(rows):
  •   for j in range(cols):
  •     if dilate[i,j]==255:
  •       img[i,j]=(0,0,255)#此处替换颜色,为bgr通道
  • cv2.imshow('res',img)
  •  
  • cv2.waitkey(0)
  • cv2.destroyallwindows()
  • 说明

    第四行timg.jpg" alt="python批量图像换背景(详解Python给照片换底色蓝底换红底)" border="0" /> lower_blue=np.array([90,70,70])里面三个数值可以控制好处理出来的效果和噪点

    win+r->cmd->cd到opencv.py文件夹,运行

    demo

    python批量图像换背景(详解Python给照片换底色蓝底换红底)

    动图演示

    python批量图像换背景(详解Python给照片换底色蓝底换红底)

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。

    原文链接:https://segmentfault.com/a/1190000018599038