Qt下使用,通过QAxWidget加载流程控件;
参考示例C:\Program Files\VisionMaster4.3.0\Development\V4.x\Samples\QT\PlatformSDKSampleQT\ProcessControl
加载流程文件。
bool loadProcedure(QString strPrcPath, IVmProcedure** ppProcedure)
{
if (strPrcPath.isEmpty())
return;
try
{
IVmProcedure* pProcedure = LoadProcedure(strPrcPath.toStdString().c_str());
if (NULL == pProcedure)
return false;
*ppProcedure = pProcedure;
}
catch (CVmException e)
{
return false;
}
return true;
}
如何设置输入参数、获取输出结果?
1、转为指定算子模块。
ImageSourceModuleTool* pImageSource = (ImageSourceModuleTool*)(*_vmProcedure)["图像源1"];
pImageSource->SetImagePath("D:\\xxx.bmp");
_vmProcedure->Run();
IMVSCaliperCornerModuTool* pCaliperCorner = (IMVSCaliperCornerModuTool*)(*_vmProcedure)["边缘交点1"];
MVD_POINT_F mvdPoint = pCaliperCorner->GetResult()->GetIntersectionPoint();
ModuleInfoList* listModule = _vmProcedure->GetAllModuleList();
2、输入输出设置绑定。需先在模块配置中设置。
IoImage ioImage = QImageToIoImage(_qImageSource);//自行转换
_vmProcedure->GetParamObj()->SetInputImageV2("ImageData", &ioImage);
_vmProcedure->Run();
IMVSProcedureResults* result = _vmProcedure->GetResult();
IoPointArray point = result->GetOutputPointArray("Point");