本文主要使用了OpenCV的图像色域转换, 颜色通道分割, 高斯滤波, OSTU自动阈值等功能。
参考资料
OpenCV探索之路:皮肤检测技术;
学习OpenCV—肤色检测。...该方法的原理也很简单:
将RGB图像转换到 YCrCb 颜色空间,提取 Cr 分量图像
对 Cr 分量进行高斯滤波
对Cr做自二值化阈值分割处理 OSTU 法
关于高斯滤波
使用低通滤波器可以达到图像模糊的目的...我们需要指定高斯滤波器的宽和高(必须是奇数)。以及高斯函数沿 X,Y 方向的标准差。如果我们只指定了 X 方向的的标准差,Y 方向也会取相同值。...YUV色域(y, cr, cb) = cv2.split(ycrcb) # 图像分割, 分别获取y, cr, br通道图像# 高斯滤波, cr 是待滤波的源图像数据, (5,5)是值窗口大小, 0 是指根据窗口大小来计算高斯函数标准差...cr1 = cv2.GaussianBlur(cr, (5, 5), 0) # 对cr通道分量进行高斯滤波# 根据OTSU算法求图像阈值, 对图像进行二值化_, skin1 = cv2.threshold