无障碍网站开发,烟台企业管理培训课程,门户网站如何做谷歌seo,apk打包工具【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 了解了qmacvisual的配置之后#xff0c;正常来说#xff0c;我们需要了解下不同插件的功能是什么。不过我们不用着急#xff0c;可以继续学习下…【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 了解了qmacvisual的配置之后正常来说我们需要了解下不同插件的功能是什么。不过我们不用着急可以继续学习下qmacvisual的三个特色分别是链接属性、功能拓展和脚本处理。了解好这三个特色对于我们进一步的插件算法学习和部署其实是非常有利的。 1、链接属性 所谓的链接属性其实和图像处理的特殊性有一定的关系。一般的图像算法或者说图像处理流程后面算法的输入往往是前面图像的输出。所以从这一点来说这对软件设计来说就非常方便、非常友好。因为fae自己就可以编辑流程自由选择图像的输出结果。当然这种链接不仅仅是图像还有可能是全局变量这一点在前面已经提到过。 2、算法插件拓展 我们知道现有的图像处理算法不可能满足所有的客户场景。总有一些特殊的场景、特殊的需求依靠现在的算法或者说插件是没有办法满足的。所以这个时候qmacvisual也为我们提供了类似的机制。我们只需要按照模板去编写代码这样就可以生成对应的dll。而且后续dll开发的同学哪怕不知道整个软件的架构也能根据模板在短时间内开发出插件满足客户的要求这一点是非常重要的。 3、脚本编写 之前在讲解全局变量的时候就说过脚本处理数据的事情。整个处理流程是这样的某一个算法或者模块拿到数据之后再送往另外一个模块之前需要进行某种计算或者是某种条件判断。那么这种计算或者是条件判断写起来可能又不是很复杂根本没有达到插件编写的程度所以这个时候用脚本来进行处理是比较合适的。目前来说qmacvisual支持java script脚本脚本的内容是这样的
//示例1
var state true;
if (state true)
{ProjectSetGlobalValue(变量名, 值);
}//示例2
for (var i0;i3;i)
{LogInfo(GetCurrentTime());
}//示例3数组类型
var array ProjectGetGlobalValue(变量名);
var count GetArraySize(array);
for (var i0;icount;i)
{LogInfo(ConvertToArrayFloat(array, i));
}//示例4QPoint或cv::Point类型
var p ProjectGetGlobalValue(变量名);
var p_x ConvertToPoint(p, x);
var p_y ConvertToPoint(p, y);//示例5QPointF或cv::Point2f类型
var p2f ProjectGetGlobalValue(变量名);
var p2f_x ConvertToPoint2f(p2f, x);
var p2f_y ConvertToPoint2f(p2f, y);//示例6cv::Point3f类型
var p3f ProjectGetGlobalValue(变量名);
var p3f_x ConvertToPoint3f(p3f, x);
var p3f_y ConvertToPoint3f(p3f, y);
var p3f_z ConvertToPoint3f(p3f, z);//示例7cv::Point3d类型
var p3d ProjectGetGlobalValue(变量名);
var p3d_x ConvertToPoint3d(p3d, x);
var p3d_y ConvertToPoint3d(p3d, y);
var p3d_z ConvertToPoint3d(p3d, z);//示例8Float[]类型
var array_float ProjectGetGlobalValue(变量名);
var f_element ConvertToArrayFloat(array_float, 0); //0表示获取数组索引0位置的值//示例9Double[]或vectorDouble类型
var array_double ProjectGetGlobalValue(变量名);
var d_element ConvertToArrayDouble(array_double, 0); //0表示获取数组索引0位置的值//示例10vectorQString类型
var code GetFlowToolValue(条形码识别.条形码);
var str ConvertToArrayQString(code, 0); //0表示获取数组索引0位置的值//示例11vectorcv::Point2f类型
var center_points GetFlowToolValue(轮廓特征选择.重心);
var p1_x ConvertToArrayCvPoint2f(center_points,0, x); //0表示获取数组索引0位置的值
var p1_y ConvertToArrayCvPoint2f(center_points,0, y); //0表示获取数组索引0位置的值//示例12QVectorBool类型
var input GetFlowToolValue(通用I/O.输入点);
var state ConvertToArrayBool(input, 0); //0表示获取数组索引0位置的值//示例13QVectorint类型
var plc GetFlowToolValue(PLC通信.寄存器读取数据);
var data ConvertToArrayInt(plc, 0); //0表示获取数组索引0位置的值其中脚本的编写窗口如下所示一个业务流程当中也可以有多个脚本。