如何在Python中使用OpenCV创建Mat矩阵?
显然这条线是错的如何在Python中使用OpenCV创建Mat矩阵?,python,numpy,opencv,Python,Numpy,Opencv,显然这条线是错的 matOut=cv2::Mat::Mat(高度、宽度、cv2.CV_8UC4) 这个也是 Mat matOut(高度、宽度、cv2.CV\u 8UC4) 如何创建具有给定大小、形状和格式的现代openCV空矩阵?最新的openCV似乎没有什么帮助。。。我直接从那个文档中收集了上面使用的格式。注意:我假设OpenCV(importcv2)Python3、importnumpy等等 我想创建一个空矩阵,目的是将内容从不同的缓冲区复制到其中 编辑,更多失败的尝试 matOut=cv2
matOut=cv2::Mat::Mat(高度、宽度、cv2.CV_8UC4)
这个也是
Mat matOut(高度、宽度、cv2.CV\u 8UC4)
如何创建具有给定大小、形状和格式的现代openCV空矩阵?最新的openCV似乎没有什么帮助。。。我直接从那个文档中收集了上面使用的格式。注意:我假设OpenCV(importcv2
)Python3、importnumpy
等等
我想创建一个空矩阵,目的是将内容从不同的缓冲区复制到其中
编辑,更多失败的尝试
matOut=cv2.numpy.Mat(高度、宽度、cv2.CV\u 8UC4)
matOut=numpy.array(height,width,cv2.CV_8UC4)
因此用户696969对所问问题提出了一个基本成功的解决方案。您可以通过以下方式创建新的形状区域:
matOut = numpy.zeros([height, width, 4], dtype=numpy.uint8)
注:我已将所需内容cv2.CV_8UC4替换为预期响应,即数字4。在一个简单的RGBA像素描述符中有4个8位字节。我更希望OpenCV工具将该响应作为函数调用执行,但这似乎不起作用
我确实想分享我的用例。我最初打算创建一个空的形状矩阵,这样我就可以从一维数组中传输数据。当我解决这个问题时,我意识到有更好的方法。我开始例行程序,在那里我收到了一个包含8位RGBA数据的文件,没有任何前缀元数据。考虑没有任何标题信息的原始BMP
matContent = numpy.frombuffer(fileContent, numpy.uint8)
matContentReshaped = matContent.reshape(height, width, 4)
cv2.imshow("Display Window", matContentReshaped)
k = cv2.waitKey(0)
就这样。放松点,小豌豆。。。。感谢用户6969和eldesgraciado在此提供的帮助。这篇文章是否回答了您的问题?绝对不是。。我在那里花了30分钟剖析代码等等。。。是的,我投了反对票。完全浪费时间。。看起来它应该会起作用,但显然,自从这个答案发布以来,图书馆发生了巨大的变化。OpenCV的Python实现使用numpy数组作为主要数据类型(和矩阵)-这就是你要问的吗?
matOut=cv2.numpy.Mat(height,width,cv2.CV_8UC4)
让我通过intellisense,但是当我运行时,我发现异常发生了:AttributeError模块cv2没有属性numpy。您正在导入numpy吗?