分享

halcon  放大镜功能

 工厂应用 2018-03-20
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    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多