簡體   English   中英

使用來自 OpenMV 相機的圖像的 OpenCV imwrite 方法出現問題

[英]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.

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