为什么框架宽度/高度并不总是使用opencv设置?

时间:2015-01-13 04:14:26

标签: python opencv camera driver

因此,有很多问题和相应的答案让人们询问如何设置框架高度/宽度。下面的小样本:

OpenCV unable to change frame height, width

OpenCV (via python) on Linux: Set frame width/height?

OpenCV unable to change frame height, width

Setting frame size of QuickCam Pro 3000 with OpenCV?

Increasing camera capture resolution in OpenCV

好的,我知道opencv有时会出现设置框架高度/宽度的问题。在我的情况下,我可以设置宽度/高度范围高达640 x 512.相机的驱动程序由制造商提供(即不是v4l2或类似的东西)。我可以提供哪些调试信息,或者如何帮助他们理解为什么我不能设置更高的宽度/帧。这是驱动程序的问题,opencv同时使用?

import cv2
c = cv2.VideoCapture(1)
c.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 1280)
c.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 1024)

我使用Ubuntu 14.04并在python中使用opencv 2.4.8。

如果您想了解更多信息,请告知我们。

修改

我发现this问题已被接受answer,表明我应该能够使其发挥作用。我不知道如何做这个部分:

  

您可以做的是调查您的相机驱动程序,为OpenCV制作补丁并将其发送到code.opencv.org。这样,其他人就会喜欢你的工作,就像你喜欢别人一样。

我想这样做,但需要指导!请帮帮我。

1 个答案:

答案 0 :(得分:0)

您可以在显示前尝试调整每一帧的大小,请参见下面的代码。

确定缩放比例


scale_percent = 40 # percent of original size
width = int(img.shape[1] * scale_percent / 100) 
height = int(img.shape[0] * scale_percent / 100) 
dim = (width, height) 

在显示之前,请使用cv2.resize应用所需的缩放比例。


# resize output window
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA) 

#show resized frame
cv2.imshow("base_img", resized)

希望这会有所帮助。 :)