为啥不总是设置框架宽度/高度?

Posted

技术标签:

【中文标题】为啥不总是设置框架宽度/高度?【英文标题】:Why does the frame width / height not always get set?为什么不总是设置框架宽度/高度? 【发布时间】:2015-03-10 23:23:06 【问题描述】:

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

Unable to change frame height, width in OpenCV OpenCV (via python) on Linux: Set frame width/height? 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】:

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

确定缩放


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)

希望这会有所帮助。 :)

【讨论】:

以上是关于为啥不总是设置框架宽度/高度?的主要内容,如果未能解决你的问题,请参考以下文章

css设置盒子高度总是宽度的一半

Flash Pro cc 为啥我手机上的舞台宽度和高度设置为Flash pro里面的?

VoiceOver 是不是总是忽略宽度和高度为零的 iOS 视图?

为啥弹性项目的宽度和高度会影响弹性项目的呈现方式?

html table 中的td宽度为啥不起作用

为啥 UI Design Builder 中的“Infer Constraints”将某些视图的布局高度和宽度设置为 0dp?