我使用 OpenCV 和这段代码(仅相关片段)从高清摄像头捕获一些图像数据:
data->capture =cvCaptureFromCAM(data->config.device); // open the device
...
IplImage *grabFrame=cvQueryFrame(data->capture);
使用此代码,我总是得到一个大小为 640x480 的grabFrame,而相机支持 1920x1080。当我在初始化后做类似的事情时:
cvSetCaptureProperty(data->capture,CV_CAP_PROP_FRAME_WIDTH,1920);
cvSetCaptureProperty(data->capture,CV_CAP_PROP_FRAME_HEIGHT,1080);
我得到了真正的高清分辨率的结果——但图像模糊,这意味着它只能从 640x480 放大到高清分辨率。那么:如何强制 OpenCV 真正使用填充原生分辨率?
它似乎不是驱动程序/硬件问题,因为它发生在 Windows 和 Linux 上 - 当我在这些系统上尝试任何其他应用程序时,我得到了预期的完整的本机分辨率。
谢谢!