Как получить ширину кадра изображения с помощью OpenCV?

#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. Я знаю, на самом деле я написал, что он не определил эти две переменные. Может быть, у этих двоих есть другая ценность …