在工业机器视觉上,常见的图像处理库有opencv、halcon、visionpro、sherlcok等。其中visionpro和sherlcok是拖拽式编程,方便用户开发视觉项目。但对于opencv 和halcon则,还是基于函数or 算子编程,对用户有较高的编程语言能力。
现在市面上也不少基于halcon和opencv的拖拽式软件,这样就极大提高项目的开发效率。
一般思路是这样的,通过创建一个抽象类来作为所有工具的基类,所有工具都去继承这个抽象类。这些工具可以是,模板匹配、找圆、找线、找交点、Blob工具等。抽象类里面有个Run方法。
这些工具可以采用List把他们装起来,到时执行就可以直接遍历,采用Item.Run()。这样就可以把List里面的工具全部执行一遍。
以下为演示效果:
工具抽象基类:VisionToolBase
public abstract class VisionToolBase
{
public abstract string Name { set; get; }
public abstract bool Run();
public string ResultInfo;
}
找线工具:继承VisionToolBase
public class FindLineTool:VisionToolBase
{
string _name;
public FindLineTool(string name)
{
this._name = name;
}
public override string Name
{
get
{
return this._name;
}
set
{
this._name = Name;
}
}
public override bool Run()
{
Console.WriteLine($"{this._name} 运行完毕");
return true;
}
}