通过OTSU二值方法进行肤色检查(python)

手势识别中起首要进行肤色查抄,判定hand在那边,常用的方式有好几种,先来介绍比力传统的OTSU二值方式。

东西/原料

  • pycharm python 编纂器
  • windows7情况 opencv 模块

方式/步调

  1. 1

    我们知道YUV色彩模子源于RGB模子,亮度和色度分手开,适合于图像处置。

    YCbCr模子来历于YUV模子,多用于数字视频。好比H.264(用过FFMPEG的都知道)

    YCrCb合用于显示器

     Y指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量

  2. 2

    import cv2  as cv

    import  numpy as np

    from random 

    import random from random 

    import randint

    image = cv.imread('c:\\handtest.jpg', cv.IMREAD_COLOR)

    cv.imshow("image", image)

  3. 3

    YCrCb = cv.cvtColor(image, cv.COLOR_BGR2YCrCb) 

    # 把图像转换到YCrCb

    cv.imshow("YCrCb", YCrCb)

  4. 4

    # 别离获取Y, Cr, Cb通道图像

    (Y, Cr, Cb) = cv.split(YCrCb) 

    cv.imshow("Y", Y)

    cv.imshow("Cr", Cr)

    cv.imshow("Cb", Cb)

  5. 5

    # 高斯滤波, 

    对红色分量进行高斯滤波 消弭边缘的影响  采用(5, 5)核

    GaussianBlur = cv.GaussianBlur(Cr, (5, 5), 0)      

    cv.imshow("GaussianBlur", GaussianBlur)

  6. 6

    # 用经典的OTSU算法 二值化图像

    ret, threshold = cv.threshold(GaussianBlur, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)

    cv.imshow("threshold", threshold )

    cv.waitKey(0)cv.destroyAllWindows()

  7. 7

    小结:

    二值化方式检测是可以实现肤色检测的,可是不完美有些离散斑块

注重事项

  • 长处:cv.threshold 简单易操作
  • 错误谬误: 有些许离散斑块
  • 发表于 2019-03-26 20:01
  • 阅读 ( 1084 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具