基于肤色鉴黄

版权声明:引用请注明出处 https://blog.csdn.net/weixin_39875161/article/details/87554227

参考资料

任民宏, 郭伟钢. 基于肤色特征的色情图像识别算法[J]. 陕西理工大学学报(自然科学版), 2014(1):38-41.


实现过程

YCbCr或Y'CbCr有的时候会被写作:两者是一个,是色彩空间的一种,通常会用于影片中的影像连续处理,或是数字摄影系统中。

YCbCr由YUV和RGB转换过来。

Y'为颜色的亮度(luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份。Y'和Y是不同的,而Y就是所谓的流明(luminance),表示光的浓度且为非线性,使用伽马修正(gamma correction)编码处理。


我们通过YCbCr可以做一些简易版的人脸识别、肤色识别等功能 。

这个简易版鉴黄脚本也是如此,其实就是当人裸露身体部位达到整个画面一定比例时,我们认为其为“黄图。


import sys
import PIL.Image as Image

img = Image.open(sys.argv[1]).convert('YCbCr')

w, h = img.size

data = img.getdata()

cnt = 0

for i, ycbcr in enumerate(data):

    y, cb, cr = ycbcr

    if 86 <= cb <= 117 and 140 <= cr <= 168:

        cnt += 1

print('%s %s porn picture.'%('this', 'is' if cnt > w * h * 0.1 else 'not is'))
# 也可以用opencv 他的速度比上面的快
# import cv2 as cv
# dst = cv.cvtColor(img,cv.COLOR_BGR2YCrCb)


结束语

基于肤色这个方法有很多应用。可以去百度学术或者谷歌学术找找论文。

猜你喜欢

转载自blog.csdn.net/weixin_39875161/article/details/87554227