在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

100行Python實(shí)現(xiàn)人體膚色檢測(cè)

新機(jī)器視覺 ? 來源:demodashi.com ? 2023-05-06 10:46 ? 次閱讀

概述

本文中的人體膚色檢測(cè)功能采用 OpenCV 庫(kù)實(shí)現(xiàn)。OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上. 它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。

本文主要使用了OpenCV的圖像色域轉(zhuǎn)換, 顏色通道分割, 高斯濾波, OSTU自動(dòng)閾值等功能.

參考資料

OpenCV探索之路:皮膚檢測(cè)技術(shù)

學(xué)習(xí)OpenCV—膚色檢測(cè)

準(zhǔn)備工作

安裝 Python-OpenCV 庫(kù)


pip install opencv-python -i https://mirrors.ustc.edu.cn/pypi/web/simple

利用 -i 為pip指令鏡像源, 這里使用電子科技大學(xué)的源, 速度比官方源更快.

安裝 Numpy 科學(xué)計(jì)算庫(kù)


pip install numpy -i https://mirrors.ustc.edu.cn/pypi/web/simple

圖像的基本操作


import numpy as np
import cv2
imname =  "6358772.jpg"
# 讀入圖像
'''
使用函數(shù) cv2.imread() 讀入圖像。這幅圖像應(yīng)該在此程序的工作路徑,或者給函數(shù)提供完整路徑.
警告:就算圖像的路徑是錯(cuò)的,OpenCV 也不會(huì)提醒你的,但是當(dāng)你使用命令print(img)時(shí)得到的結(jié)果是None。
'''
img = cv2.imread(imname, cv2.IMREAD_COLOR)
'''
imread函數(shù)的第一個(gè)參數(shù)是要打開的圖像的名稱(帶路徑)
第二個(gè)參數(shù)是告訴函數(shù)應(yīng)該如何讀取這幅圖片. 其中
    cv2.IMREAD_COLOR 表示讀入一副彩色圖像, alpha 通道被忽略, 默認(rèn)值
    cv2.IMREAD_ANYCOLOR 表示讀入一副彩色圖像
    cv2.IMREAD_GRAYSCALE 表示讀入一副灰度圖像
    cv2.IMREAD_UNCHANGED 表示讀入一幅圖像,并且包括圖像的 alpha 通道
'''
# 顯示圖像
'''
使用函數(shù) cv2.imshow() 顯示圖像。窗口會(huì)自動(dòng)調(diào)整為圖像大小。第一個(gè)參數(shù)是窗口的名字,
其次才是我們的圖像。你可以創(chuàng)建多個(gè)窗口,只要你喜歡,但是必須給他們不同的名字.
'''
cv2.imshow("image", img) # "image" 參數(shù)為圖像顯示窗口的標(biāo)題, img是待顯示的圖像數(shù)據(jù)
cv2.waitKey(0) #等待鍵盤輸入,參數(shù)表示等待時(shí)間,單位毫秒.0表示無限期等待
cv2.destroyAllWindows() # 銷毀所有cv創(chuàng)建的窗口
# 也可以銷毀指定窗口:
#cv2.destroyWindow("image") # 刪除窗口標(biāo)題為"image"的窗口
# 保存圖像
'''
使用函數(shù) cv2.imwrite() 來保存一個(gè)圖像。首先需要一個(gè)文件名,之后才是你要保存的圖像。
保存的圖片的格式由后綴名決定.
'''
#cv2.imwrite(imname + "01.png", img) 
cv2.imwrite(imname + "01.jpg", img)

皮膚檢測(cè)算法

基于YCrCb顏色空間的Cr分量+Otsu法閾值分割算法

YCrCb 即 YUV ,其中 Y 表示明亮度 Luminance 或 Luma , 也就是灰階值. 而 U 和 V 表示的則是色度 Chrominance 或 Chroma ,作用是描述影像色彩及飽和度, 用于指定像素的顏色. 亮度 是透過RGB輸入信號(hào)來建立的, 方法是將RGB信號(hào)的特定部分疊加到一起. 色度 則定義了顏色的兩個(gè)方面─色調(diào)與飽和度,分別用 Cr 和 Cb 來表示. 其中, Cr 反映了RGB輸入信號(hào)紅色部分與RGB信號(hào)亮度值之間的差異. 而 Cb 反映的是RGB輸入信號(hào)藍(lán)色部分與RGB信號(hào)亮度值之間的差異.

該方法的原理也很簡(jiǎn)單:

將RGB圖像轉(zhuǎn)換到 YCrCb 顏色空間,提取 Cr 分量圖像

對(duì) Cr 分量進(jìn)行高斯濾波

對(duì)Cr做自二值化閾值分割處理 OSTU 法

關(guān)于高斯濾波

使用低通濾波器可以達(dá)到圖像模糊的目的。這對(duì)與去除噪音很有幫助。其實(shí)就是去除圖像中的高頻成分(比如:噪音,邊界)。所以邊界也會(huì)被模糊一點(diǎn)。(當(dāng)然,也有一些模糊技術(shù)不會(huì)模糊掉邊界)。OpenCV 提供了四種模糊技術(shù)。高斯濾波就是其中一種。實(shí)現(xiàn)的函數(shù)是 cv2.GaussianBlur()。我們需要指定高斯濾波器的寬和高(必須是奇數(shù))。以及高斯函數(shù)沿 X,Y 方向的標(biāo)準(zhǔn)差。如果我們只指定了 X 方向的的標(biāo)準(zhǔn)差,Y 方向也會(huì)取相同值。如果兩個(gè)標(biāo)準(zhǔn)差都是 0,那么函數(shù)會(huì)根據(jù)核函數(shù)的大小自己計(jì)算。高斯濾波可以有效的從圖像中去除高斯噪音。如果你愿意的話,你也可以使用函數(shù) cv2.getGaussianKernel() 自己構(gòu)建一個(gè)高斯濾波器。


# 膚色檢測(cè)之一: YCrCb之Cr分量 + OTSU二值化
img = cv2.imread(imname, cv2.IMREAD_COLOR)
ycrcb = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb) # 把圖像轉(zhuǎn)換到Y(jié)UV色域
(y, cr, cb) = cv2.split(ycrcb) # 圖像分割, 分別獲取y, cr, br通道圖像
# 高斯濾波, cr 是待濾波的源圖像數(shù)據(jù), (5,5)是值窗口大小, 0 是指根據(jù)窗口大小來計(jì)算高斯函數(shù)標(biāo)準(zhǔn)差
cr1 = cv2.GaussianBlur(cr, (5, 5), 0) # 對(duì)cr通道分量進(jìn)行高斯濾波
# 根據(jù)OTSU算法求圖像閾值, 對(duì)圖像進(jìn)行二值化
_, skin1 = cv2.threshold(cr1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) 
cv2.imshow("image CR", cr1)
cv2.imshow("Skin Cr+OSTU", skin1 )

基于YCrCb顏色空間Cr, Cb范圍篩選法

這個(gè)方法跟法一其實(shí)大同小異,只是顏色空間不同而已。據(jù)資料顯示,正常黃種人的Cr分量大約在140至175之間,Cb分量大約在100至120之間。大家可以根據(jù)自己項(xiàng)目需求放大或縮小這兩個(gè)分量的范圍,會(huì)有不同的效果。


# 膚色檢測(cè)之二: YCrCb中 140<=Cr<=175 100<=Cb<=120
img = cv2.imread(imname, cv2.IMREAD_COLOR)
ycrcb = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb) # 把圖像轉(zhuǎn)換到Y(jié)UV色域
(y, cr, cb) = cv2.split(ycrcb) # 圖像分割, 分別獲取y, cr, br通道分量圖像


skin2 = np.zeros(cr.shape, dtype=np.uint8) # 根據(jù)源圖像的大小創(chuàng)建一個(gè)全0的矩陣,用于保存圖像數(shù)據(jù)
(x, y) = cr.shape # 獲取源圖像數(shù)據(jù)的長(zhǎng)和寬


# 遍歷圖像, 判斷Cr和Br通道的數(shù)值, 如果在指定范圍中, 則置把新圖像的點(diǎn)設(shè)為255,否則設(shè)為0
for i in  range(0, x): 
for j in  range(0, y):
if (cr[i][j] >  140) and (cr[i][j] <  175) and (cb[i][j] >  100) and (cb[i][j] <  120):
            skin2[i][j] =  255
else:
            skin2[i][j] =  0


cv2.imshow(imname, img)
cv2.imshow(imname +  " Skin2 Cr+Cb", skin2)

基于HSV顏色空間H,S,V范圍篩選法

這個(gè)方法跟上一方法類似,只是顏色空間不同而已。據(jù)資料顯示,正常黃種人的H分量大約在7至20之間,S分量大約在28至256之間,V分量大約在50至256之間。大家可以根據(jù)自己項(xiàng)目需求放大或縮小這兩個(gè)分量的范圍,會(huì)有不同的效果。


# 膚色檢測(cè)之三: HSV中 7  7) and (_h[i][j] <  20) and (_s[i][j] >  28) and (_s[i][j] <  255) and (_v[i][j] >  50) and (_v[i][j] <  255):
            skin3[i][j] =  255
else:
            skin3[i][j] =  0


cv2.imshow(imname, img)
cv2.imshow(imname +  " Skin3 HSV", skin3)

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3945

    瀏覽量

    127934
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3407

    瀏覽量

    42712
  • 膚色檢測(cè)
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6047
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    635

    瀏覽量

    41556
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85039

原文標(biāo)題:人體膚色檢測(cè):100 行 Python 實(shí)現(xiàn)

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于FPGA的膚色識(shí)別算法實(shí)現(xiàn)

    `大家好,給大家介紹一下,這是基于FPGA的膚色識(shí)別算法實(shí)現(xiàn)。我們今天這篇文章有兩個(gè)內(nèi)容一是實(shí)現(xiàn)基于FPGA的彩色圖片轉(zhuǎn)灰度實(shí)現(xiàn),然后在這個(gè)基礎(chǔ)上實(shí)
    發(fā)表于 10-28 08:48

    基于膚色模型和區(qū)域特征的人臉檢測(cè)方法

    精度和速度是人臉檢測(cè)系統(tǒng)的兩個(gè)衡量標(biāo)準(zhǔn)。針對(duì)傳統(tǒng)人臉檢測(cè)方法兩者不能兼優(yōu)的問題,該文提出一種結(jié)合顏色空間和特征區(qū)域的人臉檢測(cè)方法。該方法采用膚色模型提取
    發(fā)表于 04-15 08:55 ?25次下載

    基于膚色模型的人耳檢測(cè)系統(tǒng)

    人耳檢測(cè)是人耳識(shí)別以及基于內(nèi)容的圖像和視頻檢索的一項(xiàng)重要任務(wù)。本文提出了一種將背景差分和膚色模型相結(jié)合的人耳檢測(cè)算法。算法首先在序列圖像中自動(dòng)提取運(yùn)動(dòng)目標(biāo)并
    發(fā)表于 07-10 14:01 ?10次下載

    基于膚色的復(fù)雜背景條件下的人臉檢測(cè)

    提出一種膚色與Adaboost 方法相結(jié)合的人臉檢測(cè)方法。首先把圖像轉(zhuǎn)換為YCbCr 顏色空間,然后利用膚色在CbCr 上的聚類性對(duì)圖像進(jìn)行預(yù)處理,最后,使用Adaboost 算法對(duì)候選人臉集進(jìn)行細(xì)
    發(fā)表于 08-13 10:17 ?15次下載

    一種使用鄰接信息的自適應(yīng)膚色檢測(cè)方法

    本文提出了一種使用鄰接信息的自適應(yīng)膚色檢測(cè)方法。先在HSV 空間對(duì)圖像使用SPDH 方法以尋找最優(yōu)的膚色閾值并以此對(duì)進(jìn)行初步膚色分割;然后再通過使用鄰接信息的空間擴(kuò)散法對(duì)
    發(fā)表于 08-15 11:41 ?8次下載

    基于膚色模型的人臉檢測(cè)研究

    本文對(duì)基于膚色分割結(jié)合模板匹配的人臉檢測(cè)方法進(jìn)行了改進(jìn),提出基于“光照預(yù)處理+膚色模型+模板匹配”的人臉檢測(cè)解決思路,即在光照預(yù)處理的前提下
    發(fā)表于 04-02 11:09 ?3871次閱讀
    基于<b class='flag-5'>膚色</b>模型的人臉<b class='flag-5'>檢測(cè)</b>研究

    基于膚色的實(shí)時(shí)人臉檢測(cè)算法研究

    研究了一種基于膚色的人臉檢測(cè)算法的設(shè)計(jì)與實(shí)現(xiàn)過程。在YIQ顏色空間中,進(jìn)行了有效的膚色提取,把提取到的膚色與背景圖像信息轉(zhuǎn)為二值圖像進(jìn)行形態(tài)
    發(fā)表于 05-05 16:54 ?25次下載
    基于<b class='flag-5'>膚色</b>的實(shí)時(shí)人臉<b class='flag-5'>檢測(cè)</b>算法研究

    基于膚色檢測(cè)和人眼定位的人臉檢測(cè)方法

    提出了一種基于膚色檢測(cè)和人眼定位的人臉檢測(cè)方法。使用基于“基準(zhǔn)白色”的色彩平衡方法歸一化彩色圖像,將圖像在HSV 空間進(jìn)行膚色分割,確定候選人臉,采用形態(tài)學(xué)濾波器對(duì)其降
    發(fā)表于 10-08 09:21 ?3857次閱讀
    基于<b class='flag-5'>膚色</b><b class='flag-5'>檢測(cè)</b>和人眼定位的人臉<b class='flag-5'>檢測(cè)</b>方法

    基于ASM和膚色模型的疲勞駕駛檢測(cè)方法

    疲勞駕駛研究中,面部關(guān)鍵特征精確定位與跟蹤是個(gè)難點(diǎn)。提出了一種基于主動(dòng)形狀模型ASM和膚色模型的疲勞駕駛檢測(cè)方法。首先,利用膚色模型檢測(cè)到人臉區(qū)域?yàn)锳SM提供初始定位;然后基于ASM進(jìn)
    發(fā)表于 11-28 11:31 ?2次下載
    基于ASM和<b class='flag-5'>膚色</b>模型的疲勞駕駛<b class='flag-5'>檢測(cè)</b>方法

    基于比例特征的網(wǎng)絡(luò)不良圖像過濾算法研究

    目前對(duì)網(wǎng)絡(luò)不良圖像進(jìn)行過濾的方法中,裸露膚色比依然是常被利用的數(shù)據(jù),但是其存在一些缺陷,如偽膚色的干擾、非關(guān)鍵區(qū)域膚色的干擾、整體裸露膚色比有時(shí)候不與裸露程度呈正相關(guān)等。本算法利用
    發(fā)表于 12-04 10:28 ?0次下載
    基于比例特征的網(wǎng)絡(luò)不良圖像過濾算法研究

    如何實(shí)現(xiàn)計(jì)算機(jī)視覺的目標(biāo)檢測(cè)10Python代碼幫你實(shí)現(xiàn)

    只需10Python代碼,我們就能實(shí)現(xiàn)計(jì)算機(jī)視覺中目標(biāo)檢測(cè)。 沒錯(cuò),用這寥寥10代碼,就能實(shí)現(xiàn)
    的頭像 發(fā)表于 02-03 11:35 ?3084次閱讀

    傳音拍照專利解決人體膚色差異

    傳音的該項(xiàng)專利針對(duì)目前全球各地區(qū)人種膚色的差異,以滿足不同膚色用戶的拍攝以及成像審美需求,并針對(duì)不同膚色的用戶拍攝效果智能匹配美化算法,以獲得最優(yōu)的美化效果。
    的頭像 發(fā)表于 12-31 11:27 ?3658次閱讀
    傳音拍照專利解決<b class='flag-5'>人體膚色</b>差異

    python實(shí)現(xiàn)目標(biāo)檢測(cè)的源代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是python實(shí)現(xiàn)目標(biāo)檢測(cè)的源代碼免費(fèi)下載
    發(fā)表于 04-09 08:00 ?6次下載
    <b class='flag-5'>python</b><b class='flag-5'>實(shí)現(xiàn)</b>目標(biāo)<b class='flag-5'>檢測(cè)</b>的源代碼免費(fèi)下載

    zynq-7000的膚色識(shí)別實(shí)現(xiàn)案例解析

    1 背景知識(shí) 在膚色識(shí)別算法中,常用的顏色空間為Ycbcr,Y代表亮度,cb代表藍(lán)色分量,cr代表紅色分量。 由于膚色在YCbCr 空間受亮度信息的影響較小,本算法直接考慮 YCbCr 空間
    的頭像 發(fā)表于 12-29 12:22 ?1755次閱讀
    zynq-7000的<b class='flag-5'>膚色</b>識(shí)別<b class='flag-5'>實(shí)現(xiàn)</b>案例解析

    利用opencv+openpose實(shí)現(xiàn)人體姿態(tài)檢測(cè)

    利用opencv+openpose實(shí)現(xiàn)人體姿態(tài)檢測(cè),附詳細(xì)代碼。 通過一個(gè)偶然機(jī)會(huì),我了解到了人體姿態(tài)解算,在學(xué)習(xí)K210之余,我便想著通過opencv
    的頭像 發(fā)表于 06-26 10:15 ?3084次閱讀
    利用opencv+openpose<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>人體</b>姿態(tài)<b class='flag-5'>檢測(cè)</b>
    主站蜘蛛池模板: 狠狠色成色综合网 | 国产精品美女自在线观看免费 | 成人精品一区二区不卡视频 | 中文字幕第13亚洲另类 | 亚洲第一永久在线观看 | 一二三区视频 | 久久v| 婷婷丁香色 | 最近2018中文字幕免费看手机 | 操干| 日韩一级片免费看 | 日韩一级视频 | 国产伦精品一区二区三区免 | 91久久婷婷国产综合精品青草 | 久久精品94精品久久精品 | 天天爱天天做天天爽 | 性欧美视频在线观看 | 天堂bt在线种子网 | 成人理伦 | 久久久免费的精品 | 天天干天天做 | baoyu污污网站入口免费 | 人人人草 | 白嫩美女一级高清毛片免费看 | 国产性大片黄在线观看在线放 | 国产在线成人一区二区 | 男人的天堂免费视频 | 一级骚片超级骚在线观看 | 永久免费看| 男女在线免费视频 | 让她爽的喷水叫爽乱 | 成人a一级毛片免费看 | 午夜影视体验区 | 国产成人a | 四虎影院在线免费 | 四虎永久在线观看免费网站网址 | 九九天天影视 | 久久久一本波多野结衣 | 国产成人精品亚洲日本在线 | 一区二区视频 | 最近2018中文字幕2019高清 |