Python 3.x 类型错误:输出数组img的布局与cv::Mat不兼容(步骤[ndims-1]!=elemsize或步骤[1]!=elemsize*nchannels)
我收到此代码的错误:Python 3.x 类型错误:输出数组img的布局与cv::Mat不兼容(步骤[ndims-1]!=elemsize或步骤[1]!=elemsize*nchannels),python-3.x,opencv,error-handling,compiler-errors,jupyter-notebook,Python 3.x,Opencv,Error Handling,Compiler Errors,Jupyter Notebook,我收到此代码的错误: 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) 因此,在黑色图像上
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)
因此,在黑色图像上应打印一个绿色圆圈。但是我越来越
类型错误:输出数组img
的布局与
cv::Mat (step[ndims-1] != elemsize or step[1] != elemsize*nchannels)
在创建
black
numpy矩阵时使用dtype=np.int64
似乎是个问题。使用RGB
图像时,通常不需要64位整数值,可以安全地使用8位字符值,如下所示:
black = np.zeros(shape = (512, 512, 3), dtype = np.uint8)
然而,OpenCV支持给定矩阵中的32位整数值,但对于创建RGB图像来说,这似乎是一种过分的做法,因为所有RGB域颜色只需要8位来表示像素颜色分量(0-255)