簡體   English   中英

Python cv2.VideoCapture() 分辨率錯誤並讀取裁剪后的圖像

[英]Python cv2.VideoCapture() has wrong resolution and read cropped images

我正在嘗試使用 Python 和 OpenCV 通過 ethe.net 從插入筆記本電腦的 IDS GV-5240CP 相機讀取圖像。

這是我應該得到的:

一張 1280x1024 的圖片(此處調整大小以便上傳)

但是使用這段代碼:

import cv2

cap = cv2.VideoCapture(1)

_, frame = cap.read()

print(frame.shape)

cv2.imshow("Out", frame)

cv2.waitKey(2000)
cap.release()
cv2.destroyAllWindows()

cv2.imwrite('Test2.png', frame)

我得到:

一張 640x480 的裁剪圖片

如何將我的視頻捕獲設置為原始分辨率?

VideoCapture默認使用 640x480。

如果您想要不同的分辨率,請在構造函數中指定它或使用帶有CAP_PROP_FRAME_WIDTH等的set()方法。 文檔中的詳細信息。

cap = cv2.VideoCapture(1, apiPreference=cv2.CAP_ANY, params=[
    cv2.CAP_PROP_FRAME_WIDTH, 1280,
    cv2.CAP_PROP_FRAME_HEIGHT, 1024])

out = cv2.VideoWriter(("E:", 'output.avi'), fourcc, 20.0, (640, 480)) 嘗試使用它並根據需要更改分辨率,它會下載或使用 cv2.resize (幀,(w,h),fx=0,fy=0,插值= cv2.INTER_CUBIC)

由於您不想這樣做,因此請使用 OpenCV 中的 set() 模塊來設置特定分辨率。 docs.opencv.org/4.x/d8/dfe/...此鏈接可獲取有關 set() 的完整信息

暫無
暫無

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

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