当前位置: 首页 > news >正文

C#与Halcon联合编程

一、加载图片

  1. 导入并初始化
using HalconDotNet;
ho_Image = new HObject();

需要在引用中导入 halcondotnet.dll

  1. 关联句柄 打开新窗口
//创建一个句柄变量 绑定winform 窗口  
HTuple winfowFater = this.pictureBox1.Handle;
//打开新的窗口
HOperatorSet.SetWindowAttr("background_color", "green");
HOperatorSet.OpenWindow(0, 0, this.pictureBox1.Width, this.pictureBox1.Height, winfowFater, "", "", out windowId);
HDevWindowStack.Push(windowId);
  1. 加载图片
//读取图片
HOperatorSet.ReadImage(out ho_Image, "1.bmp");
//获取图片大小
//定义宽和高德变量 
HTuple hv_Width = new HTuple(), hv_Height = new HTuple();
HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);
//自适应
HOperatorSet.SetPart(windowId,0,0, hv_Height, hv_Width);
//在窗口显示图片
HOperatorSet.DispObj(ho_Image, windowId);
  1. 完整代码
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
using HalconDotNet;
namespace _01加载图片
{public partial class Form1 : Form{public Form1(){InitializeComponent();}//图像变量HObject ho_Image;//句柄变量HTuple windowId;//窗体加载事件private void Form1_Load(object sender, EventArgs e){ho_Image = new HObject();//关联句柄  打开新窗口CreatWindow();//加载图片  LoadImage();}private void LoadImage(){//读取图片HOperatorSet.ReadImage(out ho_Image, "1.bmp");//获取图片大小//定义宽和高德变量 HTuple hv_Width = new HTuple(), hv_Height = new HTuple();HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);//自适应HOperatorSet.SetPart(windowId,0,0, hv_Height, hv_Width);//在窗口显示图片HOperatorSet.DispObj(ho_Image, windowId);}/// <summary>/// 关联窗口句柄/// </summary>private void CreatWindow(){//创建一个句柄变量 绑定winform 窗口  HTuple winfowFater = this.pictureBox1.Handle;//打开新的窗口HOperatorSet.SetWindowAttr("background_color", "green");HOperatorSet.OpenWindow(0, 0, this.pictureBox1.Width, this.pictureBox1.Height, winfowFater, "", "", out windowId);HDevWindowStack.Push(windowId);}}
}

注意: 启动前需要修改运行方式,在 项目 - 右键 - 属性 - 生成 - 目标平台 - x64

http://www.dtcms.com/a/176371.html

相关文章:

  • 【今日三题】跳台阶扩展问题(找规律) / 包含不超过两种字符的最长子串 / 字符串的排列(回溯—全排列)
  • DeepSeek架构解析:从神经动力学视角解构万亿参数模型的认知涌现机制
  • 如何使用docker配置ros-noetic环境并使用rviz,gazebo
  • Docker编排工具---Compose的概述及使用
  • MySQL基础关键_011_视图
  • linux环境安装docker
  • 智慧医院的可视化变革:可视化工具助力数字化转型
  • leetcode 142. Linked List Cycle II
  • 【Django】中间件
  • RDD有哪几种创建方式
  • 软件研发效能体系建设
  • VLM-AD:通过视觉语言模型监督实现端到端自动驾驶
  • Mac中Docker下载与安装
  • Excel模版下载文件导入
  • 跨物种交流新时代!百度发布动物语言转换专利,听懂宠物心声
  • WHAT - Rust 智能指针
  • -CoderOilStationJava高级工程师
  • 嵌入式学习--江协51单片机day2
  • 卷积神经网络基础(七)
  • C++对象注册系统(1)实现原理
  • 【Python爬虫电商数据采集+数据分析】采集电商平台数据信息,并做可视化演示
  • DHCP理解
  • 【上位机——MFC】对象和控件绑定
  • Kubernetes安全策略实战:从PodSecurityPolicy到Pod Security Admission
  • leetcode文件级全局变量会在测试用例之间相互影响
  • FPGA----基于ZYNQ 7020实现定制化的EPICS通信系统
  • 第1章 算法设计基础
  • 305.出现最频繁的偶数元素
  • AI日报 · 2025年5月07日|谷歌发布 Gemini 2.5 Pro 预览版 (I/O 版本),大幅提升编码与视频理解能力
  • Facebook隐私设置详解:如何保护你的个人信息