python - 为什么不总是设置框架宽度/高度?

标签 python opencv camera driver

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

我知道 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 的问题建议我应该能够使它工作。我不知道该怎么做:

What you can do is to investigate your camera driver, make a patch to OpenCV and send it to code.opencv.org. This way others will enjoy your work, the same way you enjoy other's.

最佳答案

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

确定缩放比例


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)

希望这对您有所帮助。 :)

关于python - 为什么不总是设置框架宽度/高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27914780/

相关文章:

python - 如何连接字符串 for ... in ...? (Python)

c++ - OpenCV 距离变换中的像素索引

android - 导入OpenCV时缺少Android API 14

android - Exif 数据 TAG_ORIENTATION 始终为 0

Python:正则表达式在空格上分割(但在[]中保持元素不分割)并在数组中添加 ""作为换行符

python - TypeError : list indices must be integers, 不是 str Python

python - 在Python中将日期转换为自然语言?

python - Opencv cv2.BFMatcher 没有看到相似之处

Android(相机)- 如何将 stopPreview() 与 onPictureTaken() 同步?

c++ - OpenCV + GigE 视觉相机 +c++