Halcon转到C#我们要先添加引用halcondotnet.dll一般在halcon文件下的bin/dotnet35
在Form1_Load写下开始连接相机 这里我使用的控件是textBox来实时相机图像
try
{
//打开窗口
HOperatorSet.OpenWindow(0, 0, textBox1.Width, textBox1.Height, textBox1.Handle, "", "", out hv_Windowld);
//连接相机
HOperatorSet.OpenFramegrabber("DirectShow", 1, 1, 0, 0, 0, 0, "default", 8, "rgb",
-1, "false", "default", "[0] Integrated Camera", 0, -1, out hv_AcqHandle);
HOperatorSet.GrabImageAsync(out ho_Image, hv_AcqHandle, -1);
ho_Image.Dispose();
// HOperatorSet.CloseFramegrabber(hv_AcqHandle);
}
catch
{
MessageBox.Show("无法打开相机");
}
之后我们要使用一个时间time控件来实时拍照并且我们还要获取图片的大小,使得图像正好在控件textBox内
if (checkBox1.Checked == true)
{
//采集图像
GrabImage(out ho_Image, hv_AcqHandle);
//获取图像大小
GetImageSize(ho_Image, out hv_Width, out hv_Height);
//设置在窗口中显示图像(不是实时显示)
SetPart(hv_Windowld, 0, 0, (HTuple)hv_Height, hv_Width);
DispObj(ho_Image, hv_Windowld);
}
最后我们要拍照保存至我们PC中,通过触发按钮
private void button1_Click(object sender, EventArgs e)
{
checkBox1.Checked = false;
if (checkBox1.Checked == true)
{
MessageBox.Show("请先关闭实时");
}
else
{
//保存图片,写入PC中
WriteImage(ho_Image, "jpg", 0, @"D:/OneDrive/图片/halcon1/ssss.jpg");
}
}
最后这是我暂时的窗口(未经完善)