xff1988
开源先驱
开源先驱
  • 最后登录2020-10-26
  • 发帖数221
  • 金币12389枚
  • 贡献勋章0枚
  • 忠实会员
  • 社区明星
  • 社区居民
  • 喜欢达人
阅读:20597回复:37

VB.NET halcon 联合编程 缩放画面 范例

楼主#
更多 发布于:2017-04-11 13:37
此帖售价 10 金币,已有 28 人购买 [记录] [购买]
此段为出售的内容,购买后显示
此段为出售的内容,购买后显示

zoom_ok1.rar(出售10 金币, 1134KB, 已下载111次) 
[xff1988于2017-05-20 22:32编辑了帖子]

图片

喜欢1

最新打赏:0人

小天很亮眼
助理工程师
助理工程师
  • 最后登录2020-10-21
  • 发帖数498
  • 金币1849枚
  • 贡献勋章0枚
  • 忠实会员
  • 社区居民
沙发#
发布于:2017-04-13 11:07
VB还没学,不过是个不错的尝试
kebi07
技术员
技术员
  • 最后登录2020-10-23
  • 发帖数209
  • 金币218枚
  • 贡献勋章0枚
  • 社区居民
板凳#
发布于:2017-04-13 14:24
这个可以下下来学习学习。。。
zoomhan
初学者
初学者
  • 最后登录2020-10-23
  • 发帖数387
  • 金币18枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
地板#
发布于:2017-04-13 16:29
谢谢, 在有  halcon12 的 电脑上可用。但在 halcon13 的 电脑上   不能用。
请高手指导。
zoomhan
初学者
初学者
  • 最后登录2020-10-23
  • 发帖数387
  • 金币18枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
4楼#
发布于:2017-04-13 16:42
脱离halcon   是不行的。
zoomhan
初学者
初学者
  • 最后登录2020-10-23
  • 发帖数387
  • 金币18枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
5楼#
发布于:2017-04-13 16:43
halcon13 里 用不了。
也可能是 halcon13  还不是破解版本。
hxm848812352
技术员
技术员
  • 最后登录2020-08-28
  • 发帖数39
  • 金币288枚
  • 贡献勋章0枚
  • 社区居民
6楼#
发布于:2017-04-13 17:49
这贴不错有。。。。。。
bobob
技术员
技术员
  • 最后登录2019-07-11
  • 发帖数72
  • 金币324枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
7楼#
发布于:2017-04-15 08:43
下载来学习~~~~~······
monkey斌
论坛版主
论坛版主
  • 最后登录2020-10-27
  • 发帖数147
  • 金币2797枚
  • 贡献勋章0枚
  • 社区居民
8楼#
发布于:2017-04-15 11:14
tystq
资深人士
资深人士
  • 最后登录2020-10-28
  • 发帖数478
  • 金币20526枚
  • 贡献勋章0枚
  • 社区居民
  • 社区明星
  • 忠实会员
  • 喜欢达人
  • 原创写手
9楼#
发布于:2017-06-20 15:45
鼠标缩放功能确实实现了,暂时没有发现实现鼠标平移功能,加入鼠标平移功能就完美了
tystq
资深人士
资深人士
  • 最后登录2020-10-28
  • 发帖数478
  • 金币20526枚
  • 贡献勋章0枚
  • 社区居民
  • 社区明星
  • 忠实会员
  • 喜欢达人
  • 原创写手
10楼#
发布于:2017-06-21 16:25
下面是我在楼主基础上添加的平移代码
  Dim temp_pt As Point '用来记录初始的鼠标位置
  Private Sub HWindowControl1_HMouseDown(sender As Object, e As HMouseEventArgs) Handles HWindowControl1.HMouseDown '添加该过程,鼠标按下重新获取hwin1, Row1, Column1, Row10, Column10及temp_pt
        HOperatorSet.GetPart(hwin1, Row1, Column1, Row10, Column10)
        temp_pt = New Point(e.X, e.Y)
    End Sub
  '鼠标移动事件(Hwin1)
    Private Sub HWindowControl1_HMouseMove(ByVal sender As System.Object, ByVal e As HalconDotNet.HMouseEventArgs) Handles HWindowControl1.HMouseMove '在该过程添加平移代码
        HOperatorSet.GetMposition(hwin1, mposition_row1, mposition_col1, button_state1)
      
        If (hv_width1 > mposition_col1) And (hv_height1 > mposition_row1) And (mposition_col1 > 0) And (mposition_row1 > 0) Then
            HOperatorSet.GetGrayval(ho_image1, mposition_row1, mposition_col1, hv_Grayval1) '在图片中读取灰度值
            TextBox1.Text = "(" & mposition_row1.ToString & "," & mposition_col1.ToString & ") = " & hv_Grayval1.ToString
        Else
            TextBox1.Text = "(" & mposition_row1.ToString & "," & mposition_col1.ToString & ") = " & 0
        End If
        ' 下面是添加平移代码
        If button_state1 = 1 Then '添加的平移代码
            HOperatorSet.ClearWindow(hwin1)
            HOperatorSet.SetPart(hwin1, Row1 - (e.Y - temp_pt.Y) / Zoom1, Column1 - (e.X - temp_pt.X) / Zoom1, Row10 - (e.Y - temp_pt.Y) / Zoom1, Column10 - (e.X - temp_pt.X) / Zoom1)
            '除以Zoom1是必须的,否则移动速度和鼠标移动速度不对应
            HOperatorSet.DispObj(ho_image1, hwin1)

        End If

    End Sub
xff1988
开源先驱
开源先驱
  • 最后登录2020-10-26
  • 发帖数221
  • 金币12389枚
  • 贡献勋章0枚
  • 忠实会员
  • 社区明星
  • 社区居民
  • 喜欢达人
11楼#
发布于:2017-06-22 09:52
        private void hWindowControlShow_HMouseUp(object sender, HMouseEventArgs e)
 
        {
 
            if (e.Button == MouseButtons.Right || hRowBegin == null || hColBegin == null)
 
            {
 
                return;
 
            }
 
            if(image == null)
 
            {
 
                return;
 
            }
 
            HTuple button;
 
            HTuple row1, col1, row2, col2;
 
            try
 
            {
 
                HOperatorSet.GetMposition(hWindowControlShow.HalconWindow, out hRowEnd, out hColEnd, out button);
 

                double dbRowMove, dbColMove;
 
                double dbRowB, dbColB, dbRowE, dbColE;
 
                dbRowB = hRowBegin[0].D;
 
                dbRowE = hRowEnd[0].D;
 
                dbColB = hColBegin[0].D;
 
                dbColE = hColEnd[0].D;
 
                dbRowMove = -dbRowE + dbRowB;
 
                dbColMove = -dbColE + dbColB;
 

                HOperatorSet.GetPart(hWindowControlShow.HalconWindow, out row1, out col1, out row2, out col2);
 
                HOperatorSet.SetPart(hWindowControlShow.HalconWindow, row1 + dbRowMove, col1 + dbColMove, row2 + dbRowMove, col2 + dbColMove);
 
                HOperatorSet.ClearWindow(hWindowControlShow.HalconWindow);
 
                HOperatorSet.DispObj(image, hWindowControlShow.HalconWindow);
 
            }
 
            catch (Exception ex)
 
            {
 
                MessageBox.Show("Button Up Fail!", "错误", MessageBoxButtons.OK);
 
            }
 
        }
xff1988
开源先驱
开源先驱
  • 最后登录2020-10-26
  • 发帖数221
  • 金币12389枚
  • 贡献勋章0枚
  • 忠实会员
  • 社区明星
  • 社区居民
  • 喜欢达人
12楼#
发布于:2017-06-22 09:55
tystq:下面是我在楼主基础上添加的平移代码
  Dim temp_pt As Point '用来记录初始的鼠标位置
  Private Sub HWindowControl1_HMouseDown(sender As Object, e As ...
回到原帖
可以平移吗?
tystq
资深人士
资深人士
  • 最后登录2020-10-28
  • 发帖数478
  • 金币20526枚
  • 贡献勋章0枚
  • 社区居民
  • 社区明星
  • 忠实会员
  • 喜欢达人
  • 原创写手
13楼#
发布于:2017-06-22 14:41
xff1988:可以平移吗?回到原帖
可以平移,就是有闪屏现象,不过不严重
jackxiyu
技术员
技术员
  • 最后登录2018-05-28
  • 发帖数59
  • 金币157枚
  • 贡献勋章0枚
  • 社区居民
14楼#
发布于:2017-06-30 08:38
路过学习中......!
上一页
游客

返回顶部
支付

欢迎打赏,请选择打赏金额

  • 1元
  • 6元
  • 10元
  • 66元
  • 100元

支付即代表同意《本站支付协议》 有疑问请联系客服