TypeError: Расположение выходного массива img несовместимо с cv :: Mat (step [ndims-1]! = Elemsize или step [1]! = Elemsize * nchannels) - PullRequest
0 голосов
/ 24 декабря 2018

Я получаю сообщение об ошибке с этим кодом:

import matplotlib.pyplot as plt
import cv2
import numpy as np

black = np.zeros(shape = (512, 512, 3), dtype = np.int64)
cv2.circle(black, center = (100, 100), radius = 50, color = (0, 255, 0), thickness = 10)

plt.imshow(black)

В результате на черном изображении должен быть напечатан кружок зеленого цвета.Но я получаю

TypeError: Расположение выходного массива img несовместимо с

cv::Mat (step[ndims-1] != elemsize or step[1] != elemsize*nchannels)

1 Ответ

0 голосов
/ 25 декабря 2018

Использование dtype = np.int64 при создании вашей black numpy матрицы кажется проблемой.При работе с RGB изображениями вам обычно не нужны 64-битные целочисленные значения, вы можете безопасно использовать 8-битные значения символов как:

black = np.zeros(shape = (512, 512, 3), dtype = np.uint8)

Однако OpenCV поддерживает 32-битные целочисленные значения в данной матрице, но это кажется излишним для создания изображения RGB, поскольку все цвета домена RGB требуют только 8 бит для представления компонента цвета пикселя (0-255).

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