[英]Problems using OpenCV imwrite method with image from OpenMV camera
我正在嘗試使用 OpenCV 的拼接算法拼接從我的 OpenMV H7 相機拍攝的一些圖像。 我遇到了無法寫入或讀取這些圖像的問題,這讓我認為存在一些兼容性問題。
更准確地說,我在使用方法(cv2.imwrite)本身時遇到了這個錯誤:
File "main_script_test.py", line 141, in <module>
cv2.imwrite("/Documents/Cam/Images/image_" + str(images_To_Be_Taken), img)
TypeError: Expected Ptr<cv::UMat> for argument 'img'
我一直在想,也許有一種方法可以將圖像轉換為 NumPy 數組以使其兼容,但我不太確定。
有什么建議么?
OpenCV 的 imwrite需要一個 Mat object,它是一個“n 維密集數組類”。 傳遞圖像數據的numpy
數組代替 Mat 對象,至少在 imwrite() 的情況下,將產生正確的結果。
從上面鏈接的文檔中:
因此,Mat 中的數據布局與標准工具包和 SDK 中的大多數密集數組類型兼容,例如 Numpy(ndarray)、Win32(獨立設備位圖)等,即與任何使用步驟 (或跨步)來計算像素的 position。 由於這種兼容性,可以為用戶分配的數據制作一個 Mat header 並使用 OpenCV 函數就地處理它。
對於您的代碼:
cv2.imwrite("/Documents/Cam/Images/image_" + str(images_To_Be_Taken), np.asarray(img))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.