我有配备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进行连接的方法,已完成:

  • here安装Visual Studio 2015
  • here安装最新版本的OpenCV,并使用this tutorial以正确的方式安装和配置OpenCV。
  • 将Allied Vision摄像机(Manta)连接到计算机(计算机中必须装有GigE Controller )
  • here安装Vimba Viewer SDK,并使用Vimba Viewer驱动程序软件安装驱动程序。 Rebbot计算机。
  • 运行Vimba Viewer,查看是否检测到您的相机并使用相机捕获一些图像。
  • 关闭Vimba Viewer ,然后运行Visual Studio。从文件夹中打开一些API C++示例:... \ Allied Vision \ Vimba_2.0 \ VimbaCPP_Examples。我建议第一次使用ListCameras。您将能够检查VS2015是否识别您的相机。如果一切正常,您应该在VS控制台中看到摄像机参数。

  • 我已经解决的可能的问题:
  • 运行API示例时,Visual Studio崩溃。 FIX:关闭Vimba查看器
  • API C++ ListCameras找不到您的相机:修复:禁用firewal,所有防病毒程序或在防病毒程序中向ListCameras.exe,Visual Studio 2015和Vimba Viewer添加异常(exception)。
  • 09-26 06:04