0

我正在尝试从包含单眼但没有人脸的图像中检测眼睛。所以我不需要检测人脸。但是我发现的所有资源都是在检测面部后检测眼睛。

在这里,我试图只检测眼睛。但它无法检测到眼睛。这是输入图像 - UBIRIS_200X150 V2 Eye Image

import os
import cv2

# dataset paths
path = 'F:/Thesis/Iris Recognition For Visible Spectrum Iris Images/Datasets/UBIRIS_200_150 - 2 Samples/'

# haarcascade eye detection
eye_cascade = cv2.CascadeClassifier('C:/Users/Noyan Ali/Desktop/Iris Segmentation/haarcascade_eye.xml')

# processing each image from specified dataset
for root, dirs, files in os.walk(path):
    # getting individual image name, id, number, session, path
    if os.path.basename(root) == 'Sessao_1' or os.path.basename(root) == 'Sessao_2':
        continue
    id_number = os.path.basename(root)
    
    for file in files:
        image_name = file
        session_number = file[-7]
        image_number = file[-5]
        
        # reading individual image
        image_path = os.path.join(root, file)
        image = cv2.imread(image_path)
        
        # converting bgr to gray
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        
        eyes = eye_cascade.detectMultiScale(gray)
        print(len(eyes))
        
        for (ex,ey,ew,eh) in eyes:
            print('Yes: ' + image_name)
            for (ex,ey,ew,eh) in eyes:
                cv2.rectangle(image,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
        
        # saving detected eye image
        cv2.imwrite('Detected Eyes/'+image_name, image)
        
        print('done!')
4

0 回答 0