Halcon HSmartWindowControl初识
应用背景概述
Halcon的新版本中增加了HSmartWindowControl控件,该控件可以很方便的实现图像的缩放、拖拽、及自适应显示,本文通过C#的WPF来说明该控件的使用。
本案例应用环境为Win10 64位+VS2017 Community版+Halcon18。
1.新建WPF工程
新建WPF项目,这里我们将项目命名为"WPFHalconSmartBasic"
2.添加Halcon库函数的应用
2.1在解决方案管理器中添加引用
2.2在随后弹出的"引用管理器对话框"中点击"浏览"
2.3找到Halcon的安装目录选择\bin\dotnet35\halcondotnet.dll并添加
2.4在工具箱中添加Halcon控件
在工具箱处右击选中“选择项”,在弹框中选中WPF分页,单击“浏览”选择打开Halcon安装目录选择\bin\dotnet35\halcondotnet.dll并打开。
3添加控件
在XAML栏修改添加如下代码
添加HSmartWindowControlWPF控件的Loaded事件函数,增加图片读取函数
// Loaded响应函数
private void HswControl_Loaded(object sender, RoutedEventArgs e)
{
HImage image = new HImage();
image.ReadImage("E:\\2.bmp");
hswControl.HalconWindow.DispImage(image);
}
注:如果通过不添加Loaded事件响应函数来执行图片的导入而直接放在窗体的构造函数后程序执行时将报错。同时有些人喜欢用HOperatorSet这个类来完成操作,个人觉得这种方式没有层次感,而且官方也不推荐在正常情况下使用这种方式
另外由于Halcon选用的时64位系统的授权,需要在解决方案属性->生成->平台目标->修改为X64,否则运行时将报错
4.程序执行
运行程序后,程序界面如下。
在控件上通过鼠标滚轮可以改变图片显示比例;
双击控件可以实现图片的自适应显示;
按住鼠标左键可以实现图像的移动;
这些属性可以通过对控件的设置来完成他们的启用与禁用
<HalconDotNet:HSmartWindowControlWPF Name="hswControl" HDoubleClickToFitContent="True" HMoveContent="True" HZoomContent="Off" Grid.Column="0" Grid.Row="0" Margin="2" Loaded="HswControl_Loaded" />
其中HDoubleClickToFitContent,HMoveContent,HZoomContent分别代表控件的双击自适应,图像拖拽及滚轮缩放的属性,也可以通过后台代码做相应的启用或禁用
5.后续
使用HSmartWindowControl控件虽然有诸多便利,但是该控件不支持传统HWindowControl的Draw_*函数,要想在该控件上实现ROI图形区域的绘制需要通过其他方式,这块后续文章中再讲述。