簡體   English   中英

如何在 Python 中使用 OpenCV 創建 Mat 矩陣?

[英]How do I create a Mat matrix using OpenCV in Python?

顯然這條線是錯誤的。

matOut = cv2::Mat::Mat(height, width, cv2.CV_8UC4)

這個也是。

Mat matOut(height, width, cv2.CV_8UC4)

如何創建具有給定大小、形狀和格式的現代 openCV 空矩陣? 有關主題的最新 openCV 文檔似乎沒有幫助...我直接從該文檔中收集了上面使用的格式。 注意:我假設 OpenCV ( import cv2 ) Python3, import numpy等...

我正在尋找創建一個空矩陣,目的是將內容從不同的緩沖區復制到其中...

編輯,更多失敗的嘗試......

matOut = cv2.numpy.Mat(height, width, cv2.CV_8UC4)

matOut = numpy.array(height, width, cv2.CV_8UC4)

因此,user696969 針對所提出的問題提出了一個非常成功的解決方案。 您可以通過以下方式創建一個新的形狀區域:

matOut = numpy.zeros([height, width, 4], dtype=numpy.uint8)

請注意,我已將所需內容cv2.CV_8UC4替換為其預期響應,即數字4 一個簡單的 RGBA 像素描述符中有 4 個八位字節。 如果 OpenCV 工具已將響應作為 function 調用執行,我會更喜歡,但這似乎不起作用......

我確實想分享我的用例。 我原本打算創建一個空的形狀矩陣,這樣我就可以從那里的一維數組中傳輸數據。 當我解決這個問題時,我意識到有更好的方法。 我開始例程,其中我收到了一個包含 8 位 RGBA 數據的文件,沒有任何前綴元數據。 想想沒有任何 header 信息的原始 BMP。

matContent = numpy.frombuffer(fileContent, numpy.uint8) 
matContentReshaped = matContent.reshape(height, width, 4)
cv2.imshow("Display Window", matContentReshaped)
k = cv2.waitKey(0)

而已。 簡單,Peasy....感謝 user696969 和 eldesgraciado 在這里提供幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM