我有Windows 10和马尔维尔育空地区88 E8072 PCI-E千兆以太网控制器的笔记本电脑。我有Allied Vision曼塔相机连接到我的笔记本电脑。我安装了Visual Studio 2015,也安装了Allied Vision SDK - Vimba查看器。我能够用Vimba查看器界面捕捉图像,所以我知道相机工作正常。
问题是,当我试图捕捉图像在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摄像机获取视频,我会收到消息“'Canot open the video cam'',因此cap.isOpen()为false(参见上面的代码)。
我假设这与PvAPI驱动程序没有正确安装/包含有关。当我运行:
cerr << getBuildInformation() << endl;
在cmd中,我看到视频I/O下面有一行显示:PvAPI否!
我的问题是,我如何配置我的系统,以便能够捕捉图像从盟军视觉相机,模型蝠鲼在VisualStudio?
2条答案
按热度按时间qnakjoqk1#
因此,对于所有尝试使用VIMBA查看器API(C++,C#)连接曼塔摄像头的工程师(以及像我这样的机器视觉新手)来说,这就是他们的工作方式:
1.从here安装Visual Studio 2015
1.从here安装OpenCV的最新版本,并使用this tutorial以正确的方式安装和配置OpenCV。
1.将Allied Vision相机(曼塔)连接到您的计算机(您的计算机中必须有GigE控制器)
1.从here安装Vimba查看器SDK,并使用Vimba查看器驱动程序软件安装驱动程序。
1.运行Vimba查看器,看看你的相机是否被检测到,并捕捉一些图像与相机。
1.关闭Vimba查看器然后运行Visual Studio。打开文件夹中的一些API C++示例:...\Allied Vision\Vimba_2.0\VimbaCPP_Examples .我建议第一次使用ListCameras.你将能够检查你的相机是否被VS2015识别.如果一切正常,你应该在VS控制台中看到相机参数.
我遇到并修复的可能问题:
*运行API示例时Visual Studio崩溃. FIX:关闭Vimba查看器
***API C++ ListCameras找不到您的相机:**修复:可删除防火墙、所有防病毒程序或将防病毒程序中的例外添加到ListCameras.exe、Visual Studio 2015和Vimba Viewer。
8tntrjer2#
C++示例有点难找到,所以我在这里粘贴了代码片段:
当您从https://www.alliedvision.com/en/products/software/vimba-x-sdk/安装VimbaXSDK时,可以在
C:\Program Files\Allied Vision\VimbaX\doc
(它是一个HTML编译的“readthedocs那里的其余文档将帮助您捕获帧和更多内容。