我有配备Windows 10和Marvell Yukon 88E8072 PCI-E千兆位以太网 Controller 的笔记本电脑。我已将Allied Vision Manta相机连接到笔记本电脑。我安装了Visual Studio 2015,也安装了Allied Vision SDK-Vimba Viewer。我可以使用Vimba Viewer界面捕获图像,所以我知道相机可以正常工作。
问题是当我尝试在Visual Studio中捕获图像时。我下载了示例源代码,并使用此代码可以从网络摄像头捕获图像。这是代码:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <opencv2\video\video.hpp>
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
using namespace std;
int main(int argc, char* argv[])
{
//cerr << getBuildInformation() << endl;
VideoCapture cap(0); // open the video camera no. 0 - we camera, 1- should be GigE camera?
if (!cap.isOpened()) // if not success, exit program
{
cout << "Cannot open the video cam" << endl;
return -1;
}
double dWidth = cap.get(CV_CAP_PROP_FRAME_WIDTH); //get the width of frames of the video
double dHeight = cap.get(CV_CAP_PROP_FRAME_HEIGHT); //get the height of frames of the video
cout << "Frame size : " << dWidth << " x " << dHeight << endl;
namedWindow("MyVideo", CV_WINDOW_AUTOSIZE); //create a window called "MyVideo"
while (1)
{
Mat frame;
bool bSuccess = cap.read(frame); // read a new frame from video
if (!bSuccess) //if not success, break loop
{
cout << "Cannot read a frame from video stream" << endl;
break;
}
imshow("MyVideo", frame); //show the frame in "MyVideo" window
if (waitKey(30) == 27) //wait for 'esc' key press for 30ms. If 'esc' key is pressed, break loop
{
cout << "esc key is pressed by user" << endl;
break;
}
}
return 0;
}
如果我将VideoCapture cap(0)更改为VideoCapture cap(1),以便从GigE摄像机获取视频,则会收到一条消息“无法打开摄像头”,因此cap.isOpen()为false(请参见代码)以上)。
我假设这与未正确安装/包含的PvAPI驱动程序有关。当我跑步时:
cerr << getBuildInformation() << endl;
在cmd中,我在“视频I / O”下看到一行显示:PvAPI NO!
我的问题是,如何配置系统以能够从Visual Studio中的Manta模型的Allied Vision Camera捕获图像?
最佳答案
因此,对于所有正在尝试(并且在机器视觉方面很新的工程师)使用VIMBA VIEWER API(C++,C#)与MANTA CAMERAS进行连接的方法,已完成:
我已经解决的可能的问题: