详解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实现DNS正向查询、反向查询的例子
Apr 25 Python
Python求两个list的差集、交集与并集的方法
Nov 01 Python
django实现同一个ip十分钟内只能注册一次的实例
Nov 03 Python
python 自定义对象的打印方法
Jan 12 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
TensorFlow查看输入节点和输出节点名称方式
Jan 04 Python
Python实现结构体代码实例
Feb 10 Python
python等差数列求和公式前 100 项的和实例
Feb 25 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
python 常见的反爬虫策略
Sep 27 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 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下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
客户端静态页面玩分页
2006/06/26 Javascript
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
[03:55]2016国际邀请赛中国区预选赛首日TOP10精彩集锦
2016/06/27 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
Python实现SMTP发送邮件详细教程
2021/03/02 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
python实现感知器算法(批处理)
2019/01/18 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
Python内置加密模块用法解析
2019/11/25 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
python字符串下标与切片及使用方法
2020/02/13 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
军训自我鉴定100字
2014/02/13 职场文书
英语课外活动总结
2014/08/27 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
python中的None与NULL用法说明
2021/05/25 Python
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python