C#跨窗口传递Halcon图像/参数

Demo目的,图像同步到附属窗口,通过附属窗口各类操作(参数设置,ROI重置等)简化主界面

本文主要演示图像传递

主界面

附属界面

运行效果

主界面代码

复制代码
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;
using ViewControl;
using HalconDotNet;
using System.Reflection.Emit;
using static System.Net.Mime.MediaTypeNames;
namespace DeepLearningTest1
{
    public partial class FormMain : Form
    {
        HalconView HW;
        HObject HIMage = new HObject();
        public FormMain()
        {
            InitializeComponent();
            HW = new HalconView();
            HW.HWindowControl.BackColor = Color.White;
            splitContainer1.Panel1.Controls.Add(HW);
            HW.Dock = DockStyle.Fill;
        }       
        /// <summary>
        /// 加载图像
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.Filter = "图片文件(*.bmp;*.jpg;*.gif;*.png;*.tiff;*.tif)|*.bmp;*.jpg;*.gif;*.png;*.tiff;*.tif";
                openFileDialog.RestoreDirectory = true;
                openFileDialog.FilterIndex = 1;
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    label3.Text = openFileDialog.FileName;
                    HOperatorSet.ReadImage(out HIMage, label3.Text);
                    
                    HW.DispImage(HIMage, true);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("加载图片失败  " + ex.ToString());
            }
        }

        private void btn_DrawROI_Click(object sender, EventArgs e)
        {
            Form2 F2 = new Form2( HIMage);
            F2.Show();
        }
    }
}

附属界面

复制代码
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;
using ViewControl;
using HalconDotNet;
using static System.Net.Mime.MediaTypeNames;
namespace DeepLearningTest1
{
    public partial class Form2 : Form
    {
        //声明变量
        HalconView HW2;
        HObject HIMage2 = new HObject();
        public Form2(HObject HIMage)
        {

            InitializeComponent();
            //赋值
            HIMage2 = HIMage;
            //初始化窗口
            HW2 = new HalconView();
            HW2.HWindowControl.BackColor = Color.White;
            splitContainer1.Panel2.Controls.Add(HW2);
            HW2.Dock = DockStyle.Fill;
        }
        /// <summary>
        /// 加载图像
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_loadImage_Click(object sender, EventArgs e)
        {
            if (!HIMage2.IsInitialized()) { MessageBox.Show("图片为空"); return; }
            HW2.DispImage(HIMage2, true);
        }

        private void btn_save_Click(object sender, EventArgs e)
        {
           
        }
      
    }
}
相关推荐
禾小西22 分钟前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨25 分钟前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
徐小黑ACG1 小时前
Golang 基础05 结构体struct
开发语言·算法·golang
优橙教育1 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
SEO_juper2 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
西柚小萌新2 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
北极有牛2 小时前
cpp学习笔记--常量指针
java·开发语言·算法
半杯咖啡半行码2 小时前
C++ 编程与 STL 模板:从泛型编程到内存安全详解
开发语言·c++
caoerzhong3 小时前
JeeWMS 开源 WMS 部署避坑指南:Java 仓库管理系统的环境基线、四类根因与可复现交付
java·开发语言·开源
时间的拾荒人3 小时前
Qt 界面优化:绘图详解 —— 从基础图形到图片处理
开发语言·qt·面试