功能需求
Winform模式下加载图片,自适应窗口并显示图片实际width、height。
效果展示
很简单的一个小程序,点击加载图片,左侧hWindowControl1控件显示图片,右侧文本框显示图片实际宽和高的值。
本文旨在记录和分享C#调用halcon函数的过程步骤,其他复杂的图像处理功能大家可自行开发。
过程步骤
1、添加引用
浏览,选择halcon安装目录下bin->dotnet35->halcondotnet.dll文件,默认路径应该是“C:\Program Files\MVTec\HALCON-18.11-Progress\bin\dotnet35\halcondotnet.dll”。
如果没有安装halcon软件,可以直接右键“引用”进入“管理NuGet程序包”,搜索halcondotnet进行下载安装。
2、工具栏添加halcon窗口组件
右键工具箱任意控件,选择“选择项”,在弹出的窗口继续选择浏览,再选择下载安装好的halcondotnet.dll文件,加载后会出现勾选的HWindowControl组件,这个就是我们用来载入图片的控件。
3、代码编写
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 HalconDotNet;
namespace WindowsFormsApp8
{
public partial class Form1 : Form
{
HWindow window;
HImage image;
String imagePath = @"..\..\image\apple_1.png";
public Form1()
{
InitializeComponent();
window = hWindowControl1.HalconWindow;
image = new HImage();
}
private void btn_loadimage_Click(object sender, EventArgs e)
{
image.ReadImage(imagePath);
image.GetImageSize(out int width,out int height);
window.SetPart(0,0,height,width);
//image.DispObj(window);
window.DispObj(image);
tb_width.Text = width.ToString();
tb_height.Text = height.ToString();
}
}
}
注意引用HalconDotNet命名空间;
功能代码大家自由发挥,如果会用Halcon HDevelop软件写halcon程序,那使用C#调用halcon函数肯定也是得心应手的,所以相比于其他的方式比如C#引用halcon导出.cs文件和C#调用halcon引擎,我是推荐直接调用函数这样一种方法的,这样也能加深我们对halcon函数的理解。
4、项目属性设置
生成栏中,将“目标平台”下的“首选32位”勾选取消。
别忘记这一步,否则程序会报错导致无法运行。
文末总结
本文只是打了一个样,halcon函数非常丰富,大家有兴趣可以多去研究,并在我这篇文章的基础上开发出各种复杂的图像处理程序。以后我有时间或者有能力,也会把自己的学习收获分享出来。