java - OpenCV - 在 Java 中改变相机分辨率

标签 java opencv camera resolution

在 Java opencv 中设置网络摄像头分辨率的标准方法似乎不起作用。我执行以下操作:

VideoCapture v = new VideoCapture();

boolean wset = v.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, 1280);
boolean hset = v.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, 800);

System.out.println(wset);
System.out.println(hset);

v.open(1);

打印:

> false
> false

...并且不会改变相机分辨率。它似乎停留在 640x480。我知道相机没有问题,因为我可以使用 C++ 绑定(bind)成功地将分辨率设置为 1280x800。

此外 - v.getSupportedPreviewSizes() 不起作用。它返回一个错误:

HIGHGUI ERROR: V4L2: getting property #1025 is not supported

有什么想法吗?

最佳答案

您需要先打开相机再进行设置。我在 camera.open(0) 之前尝试过它,它只是返回到标准设置,但是在 camera.open(0) 之后尝试设置时它起作用了。

在你的代码中这样做

v.open(1)
boolean wset = v.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, 1280);
boolean hset = v.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, 800);

关于java - OpenCV - 在 Java 中改变相机分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21066329/

相关文章:

ios - 检查当前在 iOS 应用程序中使用的相机

opencv - 警告:无效的分辨率0 dpi。改用70

camera - 双向音频如何发送音频API HIKVISION?

java - 重命名 xml 文档中的子节点

java - 单击其中一个菜单项时更改另一个菜单项

java - NoSQLUnit MongoDB 测试 : Spring Data MongoDB approach

java - 用于 DDL 的 JPA/Hibernate

Python OpenCV - 使用实时摄像机馈送帧作为输入的模板匹配

opencv - 如何识别模拟计数器的数字?

ios - 不同 iOS 相机的图像大小?