面部检测双眼重叠

2024-05-14 12:44:39 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我做了一个小脚本,跟踪脸部,然后搜索两个眼睛,然后每个眼睛,左右。在

问题是,即使是左和右,它也会重叠。在

i = Camera().getImage()
face = i.findHaarFeatures("face.xml")
if face != None:
    face =  face[0].boundingBox()
    face = i.crop(face)
    twoeyes = face.findHaarFeatures("two_eyes_big.xml")
    if twoeyes != None:
        righteye = face.findHaarFeatures('right_eye.xml')
        lefteye = face.findHaarFeatures('lefteye.xml')
        if righteye != None and lefteye != None:
            print righteye,lefteye
            righteye = righteye[0].draw()
            lefteye = lefteye[0].draw()
            face.show()

findHaarFeatures Two eyes overlapping

印刷品显示:

^{pr2}$

我试着用面.边界框(两只眼睛)他们搜索左右两边,但总是给我(没有,没有)。在

另外,我对findHaarFeatures有问题(“面.xml“)当它给我一张以上的脸时,我只选择列表中的第一张来克服这个问题,但我想选择其中最大的一张,我如何比较两个特征的大小?在

最后,有没有更好的方法来发现其他特性而不是使用裁剪和if语句“something”!=无'?在

顺便说一句,我用的是相机的原始图像,是用对比度、饱和度、指纹还是其他什么来更好地发现特征?在


Tags: 脚本noneif特征xmlcameraface眼睛
1条回答
网友
1楼 · 发布于 2024-05-14 12:44:39

下面的代码将用于检测ROI(感兴趣区域)减少的眼睛,即人脸。在

我也在使用裁剪技术来缩小投资回报率。在

img = Camera().getImage()
face = img.findHaarFeatures("face.xml")

    if face: #checks for non empty feature set
        face = face.sortArea() #sorting all detected faces by area
        face = face[-1] #picking the largest face
        face = img.crop(face) #crops face from the image

        leftEye = face.findHaarFeatures("lefteye.xml")
        leftEye.draw()

        rightEye = face.findHaarFeatures("right_eye.xml")
        rightEye.draw()
        face.show()

对右眼和左眼的检测都会产生重叠的结果,因为它们最终都会同时检测到右眼和左眼。在

为了利用这个优势,你可以利用两个结果的平均值来产生一对眼睛。在

我已经尝试了以上在一个原始视频流从网络摄像头,它产生了不错的结果与未经处理的流。在

相关问题 更多 >

    热门问题