HSmartWindowControl鼠标缩放平移图像 画区域

Halcon的HSmartWindowControl实现鼠标缩放平移图像以及画区域操作

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace HalconWindowZoom
{
    public partial class Form1 : Form
    {
        HalconDotNet.HObject image;
        HalconDotNet.HTuple hWindow;

        public Form1()
        {
            InitializeComponent();

            hWindow = hSmartWindowControl1.HalconWindow;//初始化窗口变量
            // 鼠标滚轮的响应函数注册
            this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.my_MouseWheel);
        }

        private void Form1_Load(object sender, EventArgs e)
        {            
            HalconDotNet.HOperatorSet.ReadImage(out image, "E:\\Kell\\vision\\gg.png");
            HalconDotNet.HTuple imgWidth, imgHeight;
            HalconDotNet.HOperatorSet.GetImageSize(image, out imgWidth, out imgHeight);
            HalconDotNet.HOperatorSet.SetPart(hSmartWindowControl1.HalconID, 0, 0, imgHeight - 1, imgWidth - 1);
            HalconDotNet.HOperatorSet.DispObj(image, hSmartWindowControl1.HalconID);
            HalconDotNet.HTuple r1, c1, r2, c2;
            HalconDotNet.HOperatorSet.GetPart(hSmartWindowControl1.HalconID, out r1, out c1, out r2 ,out c2);

            HalconDotNet.HObject region;            
            HalconDotNet.HOperatorSet.Threshold(image, out region, 0, 55);
            HalconDotNet.HOperatorSet.SetColor(hSmartWindowControl1.HalconID, "red");
            HalconDotNet.HOperatorSet.DispObj(region, hSmartWindowControl1.HalconID);


            HalconDotNet.HOperatorSet.SetPart(hWindowControl1.HalconID, 0, 0, imgHeight - 1, imgWidth - 1);
            HalconDotNet.HOperatorSet.DispObj(image, hWindowControl1.HalconID);
            HalconDotNet.HOperatorSet.SetColor(hWindowControl1.HalconID, "red");
            HalconDotNet.HOperatorSet.DispObj(region, hWindowControl1.HalconID);
        }

        private void my_MouseWheel(object sender, MouseEventArgs e)
        {
            //System.Drawing.Point pt = this.Location;
            System.Drawing.Point pt = hSmartWindowControl1.Location;
            int leftBorder = hSmartWindowControl1.Location.X;
            int rightBorder = hSmartWindowControl1.Location.X + hSmartWindowControl1.Size.Width;
            int topBorder = hSmartWindowControl1.Location.Y;
            int bottomBorder = hSmartWindowControl1.Location.Y + hSmartWindowControl1.Size.Height;
            if (e.X > leftBorder && e.X < rightBorder && e.Y > topBorder && e.Y < bottomBorder)
            {
                MouseEventArgs newe = new MouseEventArgs(e.Button, e.Clicks,
                                                     e.X - pt.X, e.Y - pt.Y, e.Delta);
                hSmartWindowControl1.HSmartWindowControl_MouseWheel(sender, newe);
            }
        }

        private void btn_Draw_Click(object sender, EventArgs e)
        {
            hWindowControl1.BringToFront();
            hWindowControl1.Focus();

            HalconDotNet.HTuple r1, c1, r2, c2;
            HalconDotNet.HOperatorSet.GetPart(hSmartWindowControl1.HalconID, out r1, out c1, out r2, out c2);
            HalconDotNet.HOperatorSet.SetPart(hWindowControl1.HalconID, r1, c1, r2, c2);
            HalconDotNet.HOperatorSet.DispObj(image, hWindowControl1.HalconID);

            HalconDotNet.HOperatorSet.SetColor(hWindowControl1.HalconID, "blue");
            HalconDotNet.HOperatorSet.SetTposition(hWindowControl1.HalconID, r1+100, c1+100);
            HalconDotNet.HOperatorSet.WriteString(hWindowControl1.HalconID, "Draw");
            HalconDotNet.HOperatorSet.DrawRectangle1(hWindowControl1.HalconID, out r1, out c1, out r2, out c2);
            HalconDotNet.HObject rectangle;
            HalconDotNet.HOperatorSet.GenRectangle1(out rectangle, r1, c1, r2, c2);
            HalconDotNet.HOperatorSet.DispObj(rectangle, hSmartWindowControl1.HalconID);

            hSmartWindowControl1.BringToFront();
            hSmartWindowControl1.Focus();
        }

    }
}
 

发布了23 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/c1learning/article/details/99290661