我正在尝试执行一个从ibug数据集中提取人脸的脚本, 我已经从github克隆了这个项目,并且尝试执行以下python脚本:
python3 extract_face_from_ibug.py
我收到此错误消息
系统信息:
OpenCV 4
# Extract face image and new points.
face_image, points_normalized = extract_face(image, points)
# Mark the result
points_restored = []
for point in points_normalized:
points_restored.append([point[0] * TARGET_SIZE, point[1] * TARGET_SIZE])
pt.draw_landmark_point(face_image, points_restored)
# New file to be written.
# CAUTION: remember to set a correct name for different dataset.
head, tail = os.path.split(file_name)
subset_name = head.split('/')[-2]
common_file_name = tail.split('.')[-2]
common_url = os.path.join(
TARGET_DIR, "300vw-" + subset_name + "-" + common_file_name)
# Save the Image.
image_url = common_url + ".jpg"
cv2.imwrite(image_url, face_image)
原始代码:
https://github.com/yinguobing/image_utility/blob/master/extract_face_from_ibug.py
答案 0 :(得分:0)
您的代码期望file_name
包含正斜杠/
,并从文件路径的元素派生子集名称。但是您使用的是Windows系统,并且系统路径分隔符为/
。因此,您需要将呼叫固定为split()
。尝试使用与平台无关的同一版本:
subset_name = head.split(os.path.sep)[-2]
这是代码作者应首先编写的内容。