澳门至尊网站-首页

您的位置:澳门至尊网站 > 黑客安全 > python提取手掌和手心及片段掌纹

python提取手掌和手心及片段掌纹

2019-10-23 13:23

上次我们成功练习了手心识别器

图片 1

接下去须要使用opencv来博取手掌,去除背景某些,这里就必要用到掩膜(mask)、ROI(region of interest)等皮之不存毛将焉附文化,具体的概念依然不讲了,网上海人民广播广播台湾大学。

首先从图中依照上次的顺序画框部分提取手掌(当然自个儿截图再保存也得以-.-)如下

 图片 2

接下去批注一下提取手掌的诀窍

  1. 将图纸copy,并将图纸调换为ycrcb方式,依据ycrcb中的肤色获取和手掌颜色周围的一些,生成黑白图片
  2. 利用黑白图片获得最大的大约并生成轮廓图片并拿走一个相通的椭圆
  3. 听新闻说椭圆角度进行旋转(原图片和黑白图片及轮廓图片同期旋转)以真心实意的将魔掌放为竖直
  4. 依照原图片和黑白图片,利用黑白图片作为掩膜,得到的原图片如下爬山涉水

  图片 3

  提取手掌中央:

  算法观念爬山涉水依照黑白图片,基于间隔转变获得手掌中央,并依照最大半径画出手掌的内切圆如图

  图片 4

代码如下

 distance = cv2.distanceTransform(black_and_white, cv2.DIST_L2, 5, cv2.CV_32F)
    # Calculates the distance to the closest zero pixel for each pixel of the source image.
    maxdist = 0
    # rows,cols = img.shape
    for i in range(distance.shape[0]):
        for j in range(distance.shape[1]):
            dist = distance[i][j]
            if maxdist < dist:
                x = j
                y = i
                maxdist = dist

 cv2.circle(original, (x, y), maxdist, (255, 100, 255), 1, 8, 0)

   提取掌纹

    未来大家已知了圆的半径和圆心坐标,因而得以依附ROI提抽取内切纺锤形(即便内切星型会损失比超级多的音信,可是当前自己还一向不想到其余的更加好的形式),作出星型如下

图片 5

作长方形并领取的代码如下

final_img = original.copy()
#cv2.circle() this line 
half_slide = maxdist * math.cos(math.pi / 4)
    (left, right, top, bottom) = ((x - half_slide), (x + half_slide), (y - half_slide), (y + half_slide))
    p1 = (int(left), int(top))
    p2 = (int(right), int(bottom))
    cv2.rectangle(original, p1, p2, (77, 255, 9), 1, 1)
    final_img = final_img[int(top):int(bottom),int(left):int(right)]

运营截图

图片 6

能够看出出现了金黄部分,按理说是不会存在的,使用cv2.imwrite发觉并未有出现别的难题,如图

图片 7

感到是cv2.imshow对于出口图片的像素大小有自然范围,实行了机关填写或然是暗许有灰湖绿作为背景象且比在那间大家领到出的图纸要大

代码地址爬山涉水

感谢:

1. 那位老哥的repo,基于肤色的领取和多变类似椭圆给自家的误导非常的大(即便后半有个别完全未有用.....)

2. 即便依据间隔变化参谋至此处的答问,可是也终于马到成功了提问者的供给。

转发请表明出处

 

本文由澳门至尊网站发布于黑客安全,转载请注明出处:python提取手掌和手心及片段掌纹

关键词: