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


Posted in Python onMarch 22, 2019

现在网上出现了很多在线换底色的网页版工具是这么做的呢?其实用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到当前两个库所在的文件夹,输入以下命令逐步安装

pip install numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl
pip install opencv_python-3.3.1-cp36-cp36m-win_amd64.whl

以上两个文件下载地址:

numpy下载:https://3water.com/softs/574953.html

opencv下载 :https://3water.com/softs/333884.html

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

代码

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

import cv2
import numpy as np

img=cv2.imread('timg.jpg')
#缩放
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是原图片路径
lower_blue=np.array([90,70,70])里面三个数值可以控制好处理出来的效果和噪点

WIN+R->CMD->CD到opencv.py文件夹,运行

DEMO

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

动图演示

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python  连接字符串(join %)
Sep 06 Python
解决python写的windows服务不能启动的问题
Apr 15 Python
跟老齐学Python之list和str比较
Sep 20 Python
Python使用plotly绘制数据图表的方法
Jul 18 Python
Python使用三种方法实现PCA算法
Dec 12 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python绘制直线的方法
Jun 30 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
Sep 04 Python
wxPython实现文本框基础组件
Nov 18 Python
python opencv实现信用卡的数字识别
Jan 12 Python
浅谈django 模型类使用save()方法的好处与注意事项
Mar 28 Python
jupyter 导入csv文件方式
Apr 21 Python
详解python-图像处理(映射变换)
Mar 22 #Python
python中如何使用分步式进程计算详解
Mar 22 #Python
浅谈Python基础—判断和循环
Mar 22 #Python
浅谈python常用程序算法
Mar 22 #Python
python实现移位加密和解密
Mar 22 #Python
python实现可逆简单的加密算法
Mar 22 #Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 #Python
You might like
Access数据库导入Mysql的方法之一
2006/10/09 PHP
第十三节--对象串行化
2006/11/16 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
微信支付扫码支付php版
2016/07/22 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
python打包生成so文件的实现
2020/10/30 Python
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
求职者应聘的自我评价
2013/10/16 职场文书
校园招聘策划书
2014/01/09 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
大学活动总结格式
2014/04/29 职场文书
解除施工合同协议书
2014/10/17 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python