сок людей! У меня возникли некоторые проблемы с тем, чтобы этот код работал, суть в том, что я хочу обрезать грани некоторых изображений с помощью библиотеки MTCNN, а затем сохранить ее в виде файла .jpg, когда я запускаю этот код:
# draw each face separately
def draw_faces(filename, result_list):
# load the image
data = pyplot.imread(filename)
# plot each face as a subplot
for i in range(len(result_list)):
# get coordinates
x1, y1, width, height = result_list[i]['box']
x2, y2 = x1 + width, y1 + height
# define subplot
pyplot.subplot(1, len(result_list), i+1)
pyplot.axis('off')
# plot face
pyplot.imshow(data[y1:y2, x1:x2])
image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
pyplot.imwrite(justfaces+name+'/'+file, )
# show the plot
pyplot.show()
for name in names:
onlyfiles = [ f for f in listdir(os.path.join(ALL_DATA,name)) ]
os.mkdir(os.path.join(justfaces,name))
for file in onlyfiles:
filename = '%s/%s' % (ALL_DATA+name, file)
# load image from file
pixels = pyplot.imread(filename)
# create the detector, using default weights
detector = MTCNN()
#detect faces in the image
faces = detector.detect_faces(pixels)
print(faces)
# display faces on the original image
draw_faces(filename, faces)
код работает должным образом, но в какой-то момент я получаю эту ошибку
ValueError: zero-size array to reduction operation minimum which has no identity
Теперь проблема, которую я считаю, состоит в том, что есть изображение без людей, поэтому нет лиц, которые можно написать, а некоторыеЦикл for вызывает появление этой ошибки, если кто-то из вас может помочь, я буду так благодарен, заранее спасибо за чтение
edit: я искал json, возвращенный из draw_face как раз перед тем, как он выдал ошибкупохоже, это
[{'box': [170, -22, 177, 242], 'confidence': 0.9992941617965698, 'keypoints': {'left_eye': (227, 62), 'right_eye': (305, 73), 'nose': (257, 110), 'mouth_left': (220, 151), 'mouth_right': (288, 162)}}]
что-то интересное - это -22 во второй записи окна, это может быть причиной ошибки? если это так, вы знаете, как это остановить?