http://www./read-1095.html 众所周知,halcon在vb等界面中只有一个显示控件,不支持鼠标滚轮的缩放,这给想查看细节或边缘的人造成很多困扰。halcon有一个函数setpart,可以用来实现图像的缩放功能,下面就这个函数来说明一下。
以前使用这个函数,总是放几个按钮,放大、缩小,左移、右移等等,感觉很不方便。最近模拟halcon自带的放大镜功能。感觉效果还行,分享给大家,虽然很简单,也算是一个思路。 1、首先在界面伤有一个主显示控件(halcon的那个控件),用来显示图像,还有一个放大用的控件(也是halcon的那个控件),因为是局部放大,所以不用太大。然后在旁边放一个组合框,在里面选择放大倍数。 2、然后在主控件中选择鼠标移动的事件,在里面写下代码。当鼠标在主控件上移动式,放大控件就以相应的倍数显示出图像的细节。 下面是代码 ‘在主控件鼠标移动时调用 ’In_Image:输入图像,In_Regions:输入区域 multi:放大倍数 Private Sub ZoomImage(ByRef In_Image As HObject, ByRef In_Regions As HObject, ByVal multi As Integer) If bCanScale = False Then ‘允许放大时进入 Exit Sub End If Dim hv_mRow As Integer = Nothing Dim hv_mColumn As Integer = Nothing Dim OffSet As Integer OffSet = 100 \ multi 因为放大控件是 200*200的 HOperatorSet.GetMposition(hModelWindow, hv_mRow, hv_mColumn, 1) In_Image.DispObj(hScaleWindow) If In_Regions IsNot Nothing Then In_Regions.DispObj(hScaleWindow) End If HOperatorSet.SetPart(HWCScale.HalconWindow, hv_mRow - OffSet, hv_mColumn - OffSet, hv_mRow + OffSet, hv_mColumn + OffSet) End Sub |
|