详解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中的自定义函数学习笔记
Sep 23 Python
在Python中处理列表之reverse()方法的使用教程
May 21 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 Python
windows下Python实现将pdf文件转化为png格式图片的方法
Jul 21 Python
利用Tkinter(python3.6)实现一个简单计算器
Dec 21 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 Python
python3 实现验证码图片切割的方法
Dec 07 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
python实现XML解析的方法解析
Nov 16 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
Windows系统下pycharm中的pip换源
Feb 23 Python
Django修改app名称和数据表迁移方案实现
Sep 17 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
PHP 如何向 MySQL 发送数据
2006/10/09 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
php中取得文件的后缀名?
2012/02/20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
angularjs指令之绑定策略(@、=、&)
2017/04/13 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
python文件操作整理汇总
2014/10/21 Python
python创建进程fork用法
2015/06/04 Python
python中正则的使用指南
2016/12/04 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
理想演讲稿范文
2014/05/21 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
安全保证书格式
2015/02/28 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL