HSV标记肤色与实现艺术效果---OpenCV-Python开发指南(9)

简介: HSV标记肤色与实现艺术效果---OpenCV-Python开发指南(9)

标记肤色


前面,我们通过标记H通道上的红色,从而提取图片上的红色有效区域。那么同样的,我们可以限定肤色的范围,提取人脸的,以达到抠图的效果。


首先,肤色不仅要关注H通道,同样也需要关注S通道。所以,我们首先需要介绍一个函数:split(),定义如下:

img = cv2.imread("4.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)


如上面代码所示,我们可以通过cv2.splite()函数,来获取HSV图像上,所有通道的值。


首先,我们假定人的肤色的大致范围,其色调在[5,170]之间,饱和度在[25,166]之间。这样,我们可以按上一节的内容来获取限定范围内的图像,代码如下所示:

import cv2
img = cv2.imread("4.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)
hmask=cv2.inRange(h,5,170)
smask=cv2.inRange(s,25,166)
mask=hmask & smask
result=cv2.bitwise_and(img,img,mask=mask)
cv2.imshow("img",img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()


运行之后,只要与皮肤颜色相近的图像,都会被提取出来,而其他部分都会变成黑色。


实现艺术效果


前面,我们介绍了各种HS通道的应用,一直没有单独的或者强调V的重要性。这里,我们来通过V通道的值,实现一些有趣的艺术效果。

import cv2
img = cv2.imread("9.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)
v[:,:]=255
newHSV=cv2.merge([h,s,v])
result=cv2.cvtColor(newHSV,cv2.COLOR_HSV2BGR)
cv2.imshow("img",img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()


运行之后,有点非主流的感觉。

相关文章
|
6月前
|
数据采集 存储 XML
深入浅出:基于Python的网络数据爬虫开发指南
【2月更文挑战第23天】 在数字时代,数据已成为新的石油。企业和个人都寻求通过各种手段获取互联网上的宝贵信息。本文将深入探讨网络爬虫的构建与优化,一种自动化工具,用于从网页上抓取并提取大量数据。我们将重点介绍Python语言中的相关库和技术,以及如何高效、合法地收集网络数据。文章不仅为初学者提供入门指导,也为有经验的开发者提供进阶技巧,确保读者能够在遵守网络伦理和法规的前提下,充分利用网络数据资源。
|
3月前
|
机器学习/深度学习 XML 搜索推荐
图像自动化保存工具:Python脚本开发指南
图像自动化保存工具:Python脚本开发指南
|
数据采集 JavaScript 前端开发
Web爬虫开发指南:使用Python的BeautifulSoup和Requests库
Web爬虫是一种从互联网上获取数据的自动化工具,它可以用于抓取网页内容、提取信息和分析数据。Python提供了一些强大的库,其中BeautifulSoup和Requests是两个常用的工具,用于解析HTML内容和发起HTTP请求。本文将介绍如何使用BeautifulSoup和Requests库构建一个简单而有效的Web爬虫。
|
前端开发 API 数据库
Python网站开发指南:构建现代化、高效的Web应用
在当今数字化时代,网站已成为企业、组织以及个人展示自己的重要窗口。Python作为一种简洁、高效且易于学习的编程语言,被广泛运用于网站开发领域。本文将向您介绍如何使用Python进行网站开发,包括常用的Web框架、关键技术和最佳实践。
|
数据处理 Python
Python实战系列<二> | 70万+条表格信息标记
Python实战系列<二> | 70万+条表格信息标记
|
安全 小程序 程序员
屏幕录制与GIF转换---OpenCV-Python开发指南(46)
屏幕录制与GIF转换---OpenCV-Python开发指南(46)
189 2
屏幕录制与GIF转换---OpenCV-Python开发指南(46)
|
计算机视觉
实现抖音时光倒流效果---OpenCV-Python开发指南(56)
实现抖音时光倒流效果---OpenCV-Python开发指南(56)
184 1
实现抖音时光倒流效果---OpenCV-Python开发指南(56)
python 绘制所有线条、散点等 可用的标记符号(marker)
python 绘制所有线条、散点等 可用的标记符号(marker)
python 绘制所有线条、散点等 可用的标记符号(marker)
|
计算机视觉
实现抖音慢动作效果---OpenCV-Python开发指南(57)
实现抖音慢动作效果---OpenCV-Python开发指南(57)
240 1
|
算法
实现人脸美白算法---OpenCV-Python开发指南(59)
实现人脸美白算法---OpenCV-Python开发指南(59)
632 0
实现人脸美白算法---OpenCV-Python开发指南(59)