目录

  • 将图像转换为HSV像素空间,因为HSV空间对颜色比较敏感
  • 分别设置HSV颜色空间中,相关颜色的阈值
  • 使用inRange函数获取图像中目标颜色的索引

1.方法
选人物照:脸部的局部图像中头发突出,从颜色、灰度值上便于头发的检测:衣服颜色单一,与背景在灰度值、或颜色上的区分度高。
对全局图像或局部图像,采用灰度图像二值化、RGB颜色空间的距离、HSV空间中H的大小(二值化),用于目标像素提取
建立掩模矩阵,用于头发像素、衣服像素的标注一一zeros(M,N), ones(M,N)。 也可以直接用二值化中的1/0做像素类型的判定。
HSV空间中,对目标像素,修改H S分量的值,改变颜色
2.概述
利用opencv库中的inrange函数确定头发像素和衣服像素的范围,建立相关模型,确定范围后,对范围内的像素点进行操作,通过改变H,S的值从而改变目标颜色
3.代码
import cv2
import numpy as np

img = cv2.imread(‘D:/mai2.png’)

cv2.imshow(‘img’,img)

将图像转换为HSV像素空间,因为HSV空间对颜色比较敏感

img_hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

rows, cols, n = img_hsv.shape

分别设置HSV颜色空间中,相关颜色的阈值

lower_yellow=np.array([12,43,46])
upper_yellow=np.array([34,255,255])

lower_blue=np.array([35,43,46])
upper_blue=np.array([124,255,255])

使用inRange函数获取图像中目标颜色的索引

mask_blue=cv2.inRange(img_hsv,lower_blue,upper_blue)
mask_yellow=cv2.inRange(img_hsv,lower_yellow,upper_yellow)

image_mask=img_hsv.copy()

for row in range(rows): #遍历每一行
for col in range(cols): #遍历每一列
if mask_yellow[row,col] == 255 or mask_blue[row,col] == 255:
image_mask[row, col, 0] = image_mask[row, col, 0] + 50
image_mask[row, col, 1] = image_mask[row, col, 1] + 50
else:
‘’
yellow=cv2.bitwise_and(img,img,mask=mask_yellow)
img_2 = cv2.cvtColor(image_mask,cv2.COLOR_HSV2BGR)
cv2.imshow(‘img_2’,img_2)
cv2.waitKey(0)
4.图片效果


5.总结
选图没有选好,人物肤色与发色接近,衣服颜色的范围也没有取好,导致转换并没有很成功,有部分仍是其它颜色,而且头发中光亮的部分难以转化,基本都是在HSV空间内进行,可能还有一些不太了解的部分,以后应该加深对应的学习。
PS:py文件放在链接:https://pan.baidu.com/s/1EIu725Rgh5Z1hi_HSygrFg?pwd=2y26
提取码:2y26
需要的自取

利用python实现对人物头发及衣服颜色的替换相关推荐

  1. oracle替换图片颜色,PS人物抠图、衣服颜色更换及相片增加清晰度方法

    在日常生活中,我们往往会拍摄很多漂亮的照片,但也有不足之处.下面的教程主要为大家讲解一下人物抠图.衣服颜色更换及相片增加清晰度的方法.教程很全面,也很不错,推荐过来,大家一起来学习吧! 方法/步骤 1 ...

  2. 利用Python分析《庆余年》人物图谱和微博传播路径

    利用Python分析<庆余年>人物图谱和微博传播路径 庆余年电视剧终于在前两天上了,这两天赶紧爬取微博数据看一下它的表现. 庆余年 <庆余年>是作家猫腻的小说.这部从2007年 ...

  3. 利用python+百度智能云为人物头像动漫化(附API代码及SDK代码)

    文章目录 前言 1.2.打开第一个搜索结果 1.3.点击立即使用 1.4.创建应用 1.5.获取APPID等参数 二.API与SDK的使用 1.API代码 2.SDK使用 2.1.首先下载python ...

  4. 程序员如何利用 Python 解决女朋友不看天气的坏习惯?

    作者 | 赵昱 责编 | 郭芮 在一个阴雨绵绵的早上,一切都是那么安静祥和.忽然之间,被电话打破了宁静,一看是女朋友的电话,就知道这个小家伙肯定又做了什么傻事......果不其然,16℃的雨天她居然穿 ...

  5. 利用Python爬取翻译网站的翻译功能

    现在我想分享一个利用Python技术,爬取一个翻译网站的翻译功能的小代码. 首先隆重介绍我们今天将要爬取的网站:http://fy.iciba.com/ 咱们用Python中的urllib模块的功能进 ...

  6. python爬取外文文献翻译_利用Python爬取翻译网站的翻译功能

    现在我想分享一个利用Python技术,爬取一个翻译网站的翻译功能的小代码. 首先隆重介绍我们今天将要爬取的网站:http://fy.iciba.com/ 咱们用Python中的urllib模块的功能进 ...

  7. 干货 | 《利用Python进行数据分析》资料开源下载

    今天要跟大家分享的是数据分析领域的必备书籍之一的<利用Python进行数据分析>第二版.英文名为 Python for Data Analysis. 本书作者Wes McKinney 资深 ...

  8. python数据分析视频网盘-利用Python进行数据分析视频教程云盘下载

    利用Python进行数据分析视频教程 内容简介 本视频讲的是利用Python进行数据控制.处理.整理.分析等方面的具体细节和基本要点.同时,它也是利用Python进行科学计算的实用指南(专门针对数据密 ...

  9. 利用python进行数据分析_资料 | 利用Python进行数据分析

    下载地址:https://www.yanxishe.com/resourceDetail/1443?from=leiphonecolumn_res0518 以下内容节选自豆瓣: 内容简介 · · · ...

最新文章

  1. Excel、Exchange和C#
  2. 【Linux系统编程】进程间通信--无名管道(pipe)
  3. C#中Socket通信编程的同步实现
  4. 利用border制作三角形原理
  5. 项目进度管理和项目成本管理的重点梳理
  6. Java打war包or打jar包
  7. python工业自动化镜头_ELVIS III + Python | 如何用Python对ELVIS III进行编程开发
  8. 在 xfire中使用 GZip来 压缩 传输量
  9. android关机充电流程、充电画面显示
  10. MVC应用程序播放FLV视频,部分视图可多地方重复引用
  11. 计算机代码如何使用方法,电脑定时自动关机代码怎么样使用
  12. Mono项目的新进展
  13. PageRequestManager
  14. 百度推广怎么样做才可以有效果呢?
  15. 强化学习进阶【逆强化学习】
  16. 人工智能的未来是强化学习_多主体强化学习与AI的未来
  17. java 反编译 调试_eclipse 反编译 jar 中 .class 并打断点调试
  18. html实现tab 左右滑动
  19. 矩形类的定义(java)
  20. Android笔记:自定义锁屏

热门文章

  1. html给图片绝对定位,html相对定位和绝对定位
  2. 30岁后的测试工程师都去哪儿了?
  3. FPGA开发软件详细清单
  4. 速读区块链十年历史 2010年-2020年回顾
  5. 金工计算机测试题,金工考试题精选.doc
  6. java调用百望税控NISEC_SKSC.dll发送xml报文
  7. C#工作总结(一):Fleck的WebSocket使用
  8. 什么是802.11ac和802.11ac Wave2
  9. pdf太大怎么压缩大小?pdf文件压缩后还是太大怎么办?
  10. Solidity入门-开发众筹智能合约