我有一台ip camera。它允许我有两种不同的编码类型,h264和mjpeg,其最佳分辨率为1920x1080。
我使用iSpy软件查找相机的URL地址。它的工作和拍照,但其结果是640 * 360。
这是我的代码:
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/opencv.hpp"
int main()
{
cv::VideoCapture vcap;
const std::string videoStreamAddress = "rtsp://admin:admin@192.168.0.120/snl/live/1/2/stream1.cgi";
if (!vcap.open(videoStreamAddress))
{
printf("camera is null\n");
return -1;
}
else
{
vcap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);
vcap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);
cv::Mat image;
vcap.read(image);
cv::imshow("image",image);
cv::imwrite("image.jpg", image);
}
cv::waitKey(1000);
return 0;
}
如何拍摄更高质量的图像。我不知道问题来自我的相机,我的网址或我的代码。
我在Windows 7上使用opencv 2.4。
任何帮助将不胜感激
答案 0 :(得分:2)
我回答了我自己的问题。
起初我认为这个问题植根于OpenCV,因为我发现了很多关于设置摄像机参数失败的线索。似乎vcap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);vcap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);
效果不佳。
无论如何,我已经在其网站上检查了我的相机开发文档,并找到了另一个H.264视频流的URL。我已经更改了我的网址,但它确实有效。它需要1920X1080图像。