#python #opencv
Вопрос:
Я пытаюсь получить ширину кадра изображения со следующим кодом:
"""Predict the gender of the faces showing in the image"""
# Read Input Image
img = cv2.imread(imag)
# resize the image, uncomment if you want to resize the image
img = cv2.resize(img, (frame_width, frame_height))
# Take a copy of the initial image and resize it
frame = img.copy()
print(frame.shape[1])
if frame.shape[1] > frame_width:
frame = image_resize(frame, width=frame_width)
# predict the faces
faces = get_faces(frame)
Следуя моему основному методу, я вызываю метод с изображением:
if __name__ == '__main__':
predict_gender("/Users/$$/Downloads/test.jpg")
Я уже пытался импортировать tkinter, потому что думал, что мне нужен tkinter для рамки, но он также не работал. Вот моя текущая ошибка:
<ipython-input-10-2d047afa91e4> in predict_gender(imag)
4 img = cv2.imread(imag)
5 # resize the image, uncomment if you want to resize the image
----> 6 img = cv2.resize(img, (frame_width, frame_height))
7 # Take a copy of the initial image and resize it
8 frame = img.copy()
NameError: name 'frame_width' is not defined
Комментарии:
1.
predict_gender
— значит, это входные данные для некоторого NN, который ожидает фиксированного размера ? пожалуйста, уточните !2. вы сказали, что пытаетесь получить
frame_width
этот код, но этот код предназначен не для получения этого значения, а для изменения размера изображения с использованием значения из переменнойframe_width
, которое вы должны определить самостоятельно. Чтобы получить размер изображения, вам нужно толькоimg.shape
Ответ №1:
Вам нужно определить frame_width
и frame_height
.
img = cv2.imread(imag)
frame_height, frame_width, _ = img.shape
# resize the image, uncomment if you want to resize the image
img = cv2.resize(img, (frame_width, frame_height))
Комментарии:
1. правильный синтаксис, но нет никакого смысла изменять размер такого изображения.
2. Я знаю, на самом деле я написал, что он не определил эти две переменные. Может быть, у этих двоих есть другая ценность …