сохранение изображения ограничительной рамки - PullRequest
0 голосов
/ 20 января 2019

Вместо того, чтобы рисовать ограничивающий прямоугольник над изображением, я пытаюсь сохранить его как новое изображение.

Когда я набирал очки [ymin, xmax, ymax, xmin], я делал это.

import cv2 
import numpy as np

image = cv2.imread('ballet_106_0.jpg')
image = np.array(image)

boxes = [21, 511, 41, 420 ]
ymin, xmax , ymax ,xmin = boxes

im2 = image[ymin:ymax,xmin:xmax,:]
cv2.imwrite('bboximage.jpg',im2)

Но если я получу только очки x и y вместе с height и width. Я не уверен, как я мог бы индексировать массив NumPy.

Любые предложения будут очень полезны, заранее спасибо.

1 Ответ

0 голосов
/ 20 января 2019

Ваш код выглядит нормально, хотя эта строка:

image = np.array(image)

не требуется, как будто все идет хорошо cv2.imread выдает np.array, однако, если cv2.imread не удается, возвращается None,которая может быть источником вашей проблемы, добавьте следующую строку ниже вашего cv2.imread:

print(type(image))

, если он печатает None, это, скорее всего, означает, что в вашем каталоге нет изображения ballet_106_0.jpg.

РЕДАКТИРОВАТЬ: Чтобы преобразовать x,y,height,width в x/y-min/max значения просто выполните

ymin = y
ymax = y+height
xmin = x
xmax = x+width
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...