详解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中cPickle用法例子分享
Jan 03 Python
python3.5使用tkinter制作记事本
Jun 20 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
python 连接sqlite及简单操作
Jun 30 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
用于业余项目的8个优秀Python库
Sep 21 Python
Python高级特性切片(Slice)操作详解
Sep 27 Python
python multiprocessing模块用法及原理介绍
Aug 20 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
Python多线程Threading、子线程与守护线程实例详解
Mar 24 Python
Python实现播放和录制声音的功能
Aug 12 Python
pycharm 2020 1.1的安装流程
Sep 29 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根据操作系统转换文件名大小写的方法
2014/02/24 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
Knockout数组(observable)使用详解示例
2013/11/15 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
浅谈JavaScript中的分支结构
2016/07/01 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
vue如何截取字符串
2019/05/06 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
Python日志模块logging简介
2015/04/13 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
Numpy的简单用法小结
2019/08/28 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
文明学生事迹材料
2014/01/29 职场文书
大学生社团活动总结
2014/04/26 职场文书
珍惜资源的建议书
2014/08/26 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技