一.C#调用halcon.dll过程
1.找到桌面hclcon,点击hclcon右击属性-->打开文件位置,找到halcon.dll复制粘贴到桌面新建一个文件夹
2.从打开文件位置页面中,返回上一级bin中点击dotnet35
3.复制里面的.dll文件到桌面位置
4.打开Visual Studio 2022新建窗体
5.将桌面中的halcondotnet.dll拖进引用
6.运行一下代码,右击项目名,点击在文件资源管理器中打开文件夹,找到bin-->Debug文件
然后将桌面上的.dll文件复制粘贴到里面
看到引用里面有halcondonet表示添加成功
右击项目点击属性,点击生成,取消首选32位
二、如何写一个测试程序证明C#halcon联合开发成功
打开工具箱,将halcondonet.dll拖进BindingSource
拖HWindowControl,Button,lable如图
可以用一下代码验证是否成功
using HalconDotNet;
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 第一个联合项目
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 图片的成员变量
/// </summary>
private HObject ho_image;
private void button_readImage_Click(object sender, EventArgs e)
{
HOperatorSet.ReadImage(out ho_image, "C:\Users\LENOVO\Pictures\1.png");
HTuple width, height;
//获得图片的宽高
HOperatorSet.GetImageSize(ho_image,out width, out height);
//设置显示范围
//HWindowControl.HalconWindow -->控件的句柄 设置显示范围
HOperatorSet.SetPart(hWindowControl_yuanshi.HalconWindow,0,0, (height - 1),(width -1));
//显示
HOperatorSet.DispObj(ho_image, hWindowControl_yuanshi.HalconWindow);
}
HTuple MinGray;
HTuple MaxGray;
private void button_thresholdImage_Click(object sender, EventArgs e)
{
hWindowControls_threshold.HalconWindow.ClearWindow();
if (ho_image == null)
{
button_readImage_Click(null, null);
}
//设置颜色
HOperatorSet.SetColor(hWindowControls_threshold.HalconWindow,"red");
HObject Region;
//int.Parse(string) 字符串类型转换成int类型
MaxGray =int.Parse(textBox_MaxGray.Text);
MinGray = int.Parse(textBox_MinGray.Text);
//阈值分割
HOperatorSet.Threshold(ho_image, out Region, MinGray, MaxGray);
HTuple width, height;
HOperatorSet.GetImageSize(ho_image, out width, out height);
HWindowControl.HalconWindow -->窗体句柄 设置显示范围
HOperatorSet.SetPart(hWindowControls_threshold.HalconWindow, 0, 0, height - 1, width - 1);
显示
HOperatorSet.DispObj(Region, hWindowControls_threshold.HalconWindow);
}
}
}