详解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 相关文章推荐
Python3实现的腾讯微博自动发帖小工具
Nov 11 Python
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
python实现一次创建多级目录的方法
May 15 Python
详解python3百度指数抓取实例
Dec 12 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
PyQt5实现拖放功能
Apr 25 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
pycharm激活码有效到2020年11月底
Sep 18 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
python如何在word中存储本地图片
Apr 07 Python
七个非常实用的Python工具包总结
Jun 15 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
原生js二级联动效果
2017/06/20 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
信访工作经验交流材料
2014/05/23 职场文书
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js