如何在Visual Studio中使用OpenCV设置Allied Vision Camera曼塔

iyfjxgzm  于 2023-03-13  发布在  其他
关注(0)|答案(2)|浏览(293)

我有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?

qnakjoqk

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。

8tntrjer

8tntrjer2#

C++示例有点难找到,所以我在这里粘贴了代码片段:

std::string name;
CameraPtrVector cameras;
VmbSystem &system = VmbSystem::GetInstance();
if( VmbErrorSuccess == system.Startup() )
{
    if( VmbErrorSuccess == system.GetCameras( cameras ) )
    {
        for( CameraPtrVector::iterator iter = cameras.begin();
              cameras.end() != iter;
              ++iter )
        {
             if( VmbErrorSuccess == (*iter)->GetName( name ) )
             {
              std::cout << name << std::endl;
             }
        }
    }
}

当您从https://www.alliedvision.com/en/products/software/vimba-x-sdk/安装VimbaXSDK时,可以在C:\Program Files\Allied Vision\VimbaX\doc(它是一个HTML编译的“readthedocs
那里的其余文档将帮助您捕获帧和更多内容。

相关问题