使用OpenCV 2,IPython现在默认使用NumPy数组。将NumPy数组转换为cvMat cv2
cvimage = cv2.imread("image.png") #using OpenCV 2
type(cvimage)
Out: numpy.ndarray #dtype is uint8
pltimage = plt.imread("image.png") #using Matplotlib
type(pltimage)
Out: numpy.ndarray #dtype is float
plt.imshow(cvimage) # works great
cv2.imshow(cvimage)
TypeError: Required argument 'mat' (pos 2) not found
cv2
由于默认使用NumPy的阵列,不再有任何CV ::垫构造和NumPy的不具有功能转换为cv::Mat
阵列。
任何想法?
是的,这已经得到了回答 - 您实际上不会错过第二个参数,而是第一个。但是,我带着另一个问题来到这里:并不是每个'uint8'类型的'numpy.ndarray'都可以显示。我做了一个切片,得到一个图像的单个通道,比如'red = frame [:,:,0]',然后在'imshow'中得到一个异常。我怀疑这是因为稀疏。 'red = frame [:,:,0] .copy()'修复了这个问题。 – 2015-01-02 14:39:46