欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > C#Halcon交互绘制ROI

C#Halcon交互绘制ROI

2025/2/25 5:48:18 来源:https://blog.csdn.net/2202_75557553/article/details/144899992  浏览:    关键词:C#Halcon交互绘制ROI

画圆

确定后效果

矩形2

矩形1

画线

用简单的方式初步实现ROI交互绘制,方便初学者熟悉原理

UI界面

UI代码

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 Form1 : Form{HalconView HW;HObject HIMage = new HObject();public Form1(){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());}}/// <summary>/// 画圆/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void DrawCircle(object sender, EventArgs e){try{if (!HIMage.IsInitialized()) { MessageBox.Show("图片为空"); return; }HSystem.SetSystem("clip_region", "false");HW.Focus();HW.DrawCircleMod(out HObject Circle11,  2000,  2000,  100, out HTuple r1, out HTuple c1, out HTuple ra);HW.HalconWindow.SetColor("yellow");HW.DispObject(Circle11);}catch (Exception ex){MessageBox.Show("设置区域失败  " + ex.ToString());}}/// <summary>/// 画线/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void DrawLine(object sender, EventArgs e){try{if (!HIMage.IsInitialized()) { MessageBox.Show("图片为空"); return; }HSystem.SetSystem("clip_region", "false");HW.Focus();HW.DrawLineMod(out HObject Line, 2000, 20, 2000,2000, out HTuple r1, out HTuple c1, out HTuple r2, out HTuple c2);HW.HalconWindow.SetColor("green");HW.DispObject(Line);}catch (Exception ex){MessageBox.Show("设置区域失败  " + ex.ToString());}}/// <summary>/// 画矩形1/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void DrawRectangle(object sender, EventArgs e){try{if (!HIMage.IsInitialized()) { MessageBox.Show("图片为空"); return; }HSystem.SetSystem("clip_region", "false");HW.Focus();HW.DrawRectangle1Mod(out HObject Rectangle, 200, 200, 2000, 2000, out HTuple r1, out HTuple c1, out HTuple r2, out HTuple c2);HW.HalconWindow.SetColor("spring green");HW.DispObject(Rectangle);}catch (Exception ex){MessageBox.Show("设置区域失败  " + ex.ToString());}}/// <summary>/// 画矩形2/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void DrawRectangle2(object sender, EventArgs e){try{if (!HIMage.IsInitialized()) { MessageBox.Show("图片为空"); return; }HSystem.SetSystem("clip_region", "false");HW.Focus();HW.DrawRectangle2Mod(out HObject Rectangle2,2000,2000,0,200,100, out HTuple r1, out HTuple c1, out HTuple phi, out HTuple l1, out HTuple l2);HW.HalconWindow.SetColor("blue");HW.DispObject(Rectangle2);}catch (Exception ex){MessageBox.Show("设置区域失败  " + ex.ToString());}}/// <summary>/// 绘制ROI/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btn_DrawROI_Click(object sender, EventArgs e){if (comboBox1.Text == "画圆"){DrawCircle(null, null);}if (comboBox1.Text == "画线"){DrawLine(null, null);}if (comboBox1.Text == "矩形1"){DrawRectangle(null, null);}if (comboBox1.Text == "矩形2"){DrawRectangle2(null, null);}}/// <summary>/// 清空界面/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnClear_Click(object sender, EventArgs e){try{if (!HIMage.IsInitialized()) { MessageBox.Show("图片为空"); return; }HW.HalconWindow.ClearWindow();HW.DispObject(HIMage);}catch (Exception ex){}}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词