Преобразование OpenCV cv.Rectangle (img, pt1, pt2) в массив NumPy с помощью Python - PullRequest
0 голосов
/ 18 июня 2019

Я знаю координаты прямоугольника (x1, y1, x2, y2). Я хочу обрезать часть прямоугольника

Я пробовал тот же параметр координат, что и для рисования прямоугольника для кадрирования.

black = np.zeros((1080, 720, 3), dtype = "uint8")
while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()
    cv2.rectangle(black, (80,500), (150, 600), (0,255,0), 1, 8, 0)
    crop = frame[80:500,150:600]
    cv2.imshow("Black", black)
    cv2.imshow("crop", crop)
    cv2.imshow("Orginal", frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

Результат выделения не является прямоугольником, нарисованным на черном фоне.

1 Ответ

1 голос
/ 18 июня 2019

Индексирование Numpy работает так:

crop = frame[y1:y2, x1:x2]

Так что вам нужно:

crop = frame[80:150, 500:600]

вместо:

crop = frame[80:500, 150:600]

Или, может быть:

crop = frame[500:600, 80:150]

но у меня нет ничего с установленным OpenCV для проверки.

...