Python实现给照片换底色(附代码)

本篇文章给大家带来的内容是关于Python实现给照片换底色(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

现在网上出现了很多在线换底色的网页版工具是这么做的呢?其实用Python就可以实现。

环境要求

Python3 numpy函数库 opencv库

安装

下载适应版本的numpy函数库,我电脑是WIN10 64位,安装的函数库是
numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl

下载适应版本的numpy函数库,我电脑是WIN10 64位,安装的函数库是
opencv_python-3.3.1-cp36-cp36m-win_amd64.whl

立即学习“Python免费学习笔记(深入)”;

安装以上两个库,WIN+R->CMD->CD到当前两个库所在的文件夹,输入以下命令逐步安装

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

登录后复制

以上两个文件下载地址:https://download.csdn.net/dow…

4211873089-5c930c8943743_articlex.png

代码

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

import cv2import  numpy as npimg=cv2.imread('timg.jpg')#缩放rows,cols,channels = img.shapeimg=cv2.resize(img,None,fx=0.5,fy=0.5)rows,cols,channels = img.shapecv2.imshow('img',img)#转换hsvhsv=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文件夹,运行

本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的python教程视频栏目!

以上就是Python实现给照片换底色(附代码)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2533580.html

(0)
上一篇 2025年3月5日 21:16:47
下一篇 2025年2月17日 23:16:00

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎么找到黑客的联系方式?

    如果你想要找到黑客的联系方式,那么你可能面临以下难题:黑客往往会隐藏他们的身份,并且他们的联系方式很难被发现。php小编草莓在这里为你提供了一份指南,旨在帮助你找到黑客的联系方式。在本指南中,我们将介绍一些常见的黑客使用的联系方式,并提供一…

    2025年3月5日
    200
  • Python中is 和 ==的详细解析(附代码)

    本篇文章给大家带来的内容是关于python中is 和 ==的详细解析(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在Python中一切都是对象。 Python中对象包含的三个基本要素,分别是: id(身份标识)…

    编程技术 2025年3月5日
    200
  • Python如何清空列表?清空列表的4种方法(代码示例)

    通过python语言提供的不同构造的方法可以有许多方法来清空列表,下面本篇文章就来给带大家介绍python中4种清空列表的方法,希望对大家有所帮助。 方法1:重新初始化列表 可以重初始化列表,初始化该作用域中的列表时,将不带值的初始化列表,…

    2025年3月5日 编程技术
    200
  • Python如何获取列表长度?(代码示例)

    列表是python日常编程的一个组成部分,了解列表的相关操作是是必不可少的。下面本篇文章就来带大家了解一下在python中获取列表长度的方法,希望对大家有所帮助。 方法1:循环+计数器 在这个方法中,只需运行一个循环并增加计数器,直到遍历到…

    2025年3月5日 编程技术
    200
  • python中进程间数据通讯模块multiprocessing.Manager的介绍

    本篇文章给大家带来的内容是关于python中进程间数据通讯模块multiprocessing.manager的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 目前开发中有遇到进程间需要共享数据的情况. 所以研究了下mu…

    编程技术 2025年3月5日
    200
  • Python中eval() 与exec() 函数的用法解析

    本篇文章给大家带来的内容是关于Python中eval() 与exec() 函数的用法解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Python 提供了很多内置的工具函数(Built-in Functions),在最新…

    编程技术 2025年3月5日
    200
  • Python动态赋值的陷阱分析

    本篇文章给大家带来的内容是关于Python动态赋值的陷阱分析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 命名空间与作用域问题,看似微不足道,其实背后大有文章。 由于篇幅所限,还有一个重要的知识内容没谈,即“locals…

    编程技术 2025年3月5日
    200
  • Python eval的常见错误封装及利用原理的介绍

    本篇文章给大家带来的内容是关于python eval的常见错误封装及利用原理的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 最近在代码评审的过程,发现挺多错误使用eval导致代码注入的问题,比较典型的就是把eval当…

    编程技术 2025年3月5日
    200
  • python中eval的用法详解及潜在风险介绍

    本篇文章给大家带来的内容是关于python中eval的用法详解及潜在风险介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 eval前言 In [1]: eval(“2+3”)Out[1]: 5In [2]: eval(‘…

    编程技术 2025年3月5日
    200
  • Python实现DES加密解密的方法介绍(代码)

    本篇文章给大家带来的内容是关于python实现des加密解密的方法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 DES(Data Encryption Standard)采用64位的分组长度和56位的密钥长度…

    编程技术 2025年3月5日
    200

发表回复

登录后才能评论