在HALCON里面打开图像采集助手

会自动识别大相机类型

在连接选项卡中,可以看到使用的接口库和设备名称,点击下面的连接按钮,尝试采集和实时图像,看在显示窗口是否可以采集到图像

图像窗口有图像输出,说明相机连接正常

代码生成窗口,选择采集单幅图片,点击插入代码。

HALCON的程序窗口将显示生成的程序

* Image Acquisition 01: Code generated by Image Acquisition 01
open_framegrabber ('USB3Vision', 1, 1, 0, 0, 0, 0, 'progressive', 12, 'gray', -1, 'false', 'default', '1E1000DCD06E_PointGreyResearch_Grasshopper3GS3U391S6M', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
grab_image_async (Image, AcqHandle, -1)
* Image Acquisition 01: Do something
close_framegrabber (AcqHandle)

在文件中选择导出语言

选择导出语言的类型,这里选择了C#

//
// File generated by HDevelop for HALCON/.NET (C#) Version 20.11.0.0
// Non-ASCII strings in this file are encoded in local-8-bit encoding (cp936).
//
// Please note that non-ASCII characters in string constants are exported
// as octal codes in order to guarantee that the strings are correctly
// created on all systems, independent on any compiler settings.
//
// Source files with different encoding should not be mixed in one project.
//using HalconDotNet;public partial class HDevelopExport
{
#if !(NO_EXPORT_MAIN || NO_EXPORT_APP_MAIN)public HDevelopExport(){// Default settings used in HDevelopHOperatorSet.SetSystem("width", 512);HOperatorSet.SetSystem("height", 512);if (HalconAPI.isWindows)HOperatorSet.SetSystem("use_window_thread","true");action();}
#endif#if !NO_EXPORT_MAIN// Main procedure private void action(){// Local iconic variables HObject ho_Image;// Local control variables HTuple hv_AcqHandle = new HTuple();// Initialize local and output iconic variables HOperatorSet.GenEmptyObj(out ho_Image);//Image Acquisition 01: Code generated by Image Acquisition 01hv_AcqHandle.Dispose();HOperatorSet.OpenFramegrabber("USB3Vision", 1, 1, 0, 0, 0, 0, "progressive", 12, "gray", -1, "false", "default", "1E1000DCD06E_PointGreyResearch_Grasshopper3GS3U391S6M", 0, -1, out hv_AcqHandle);HOperatorSet.GrabImageStart(hv_AcqHandle, -1);ho_Image.Dispose();HOperatorSet.GrabImageAsync(out ho_Image, hv_AcqHandle, -1);//Image Acquisition 01: Do somethingHOperatorSet.CloseFramegrabber(hv_AcqHandle);ho_Image.Dispose();hv_AcqHandle.Dispose();}#endif}
#if !(NO_EXPORT_MAIN || NO_EXPORT_APP_MAIN)
public class HDevelopExportApp
{static void Main(string[] args){new HDevelopExport();}
}
#endif

上面程序中Action中的代码就是执行打开相机操作的代码。

打开VisualStudio开发环境,新建一个WinFormApp

命名为halconOpenCamera

拷贝Halcon安装目录下的

到C#程序下的bin目录中

添加项目引用

在Form设计中加入picturebox和按钮控件

在form1.cs中使用 HalconDotNet命名空间

using HalconDotNet;

复制Halcon生成.cs程序中Action函数中的语句到button1_Click()函数下,这时候并没有Halcon窗体,所以没法显示图片。

这时候要创建一个Halcon窗体

 public void CreateHalconWindow(){   HTuple FartherWindow = this.pictureBox1.Handle;HOperatorSet.SetWindowAttr("background_color", "blue");HOperatorSet.OpenWindow(0, 0, this.pictureBox1.Width, this.pictureBox1.Height, FartherWindow, "visible","", out WindowID);}

把CreateHalconWindow()函数放到初始化组件之后。

把下面几行代码插入到button1_Click()函数中获得图像之后。

 HTuple width = null, height = null;HOperatorSet.GetImageSize(ho_Image, out width, out height);HOperatorSet.SetColor(WindowID, "yellow");HOperatorSet.SetPart(WindowID, 0, 0, height, width);HOperatorSet.DispObj(ho_Image, WindowID);

所以整个程序是这样的。

using HalconDotNet;
namespace halconOpenCamera
{public partial class Form1 : Form{private HTuple WindowID;public Form1(){InitializeComponent();CreateHalconWindow();}public void CreateHalconWindow(){HTuple FartherWindow = this.pictureBox1.Handle;HOperatorSet.SetWindowAttr("background_color", "black");HOperatorSet.OpenWindow(0, 0, this.pictureBox1.Width, this.pictureBox1.Height, FartherWindow, "visible", "", out WindowID);}private void button1_Click(object sender, EventArgs e){HObject ho_Image;// Local control variables HTuple hv_AcqHandle = new HTuple();// Initialize local and output iconic variables HOperatorSet.GenEmptyObj(out ho_Image);//Image Acquisition 01: Code generated by Image Acquisition 01hv_AcqHandle.Dispose();HOperatorSet.OpenFramegrabber("USB3Vision", 1, 1, 0, 0, 0, 0, "progressive",12, "gray", -1, "false", "default", "1E1000DCD06E_PointGreyResearch_Grasshopper3GS3U391S6M",0, -1, out hv_AcqHandle);HOperatorSet.GrabImageStart(hv_AcqHandle, -1);ho_Image.Dispose();HOperatorSet.GrabImageAsync(out ho_Image, hv_AcqHandle, -1);//Image Acquisition 01: Do somethingHOperatorSet.CloseFramegrabber(hv_AcqHandle);HTuple width = null, height = null;HOperatorSet.GetImageSize(ho_Image, out width, out height);HOperatorSet.SetColor(WindowID, "yellow");HOperatorSet.SetPart(WindowID, 0, 0, height, width);HOperatorSet.DispObj(ho_Image, WindowID);ho_Image.Dispose();hv_AcqHandle.Dispose();}}
}

运行程序

打开相机成功,正常获取图像。

HALCON day1 C# 打开相机相关推荐

  1. Halcon联合VS2010打开相机并显示

    在开始之前需要安装好Halcon 12和VS2010,具体的话VS2010是免费的可以直接在微软官方下载,Halcon12这个可以参考Halcon学习网(http://www.ihalcon.com/ ...

  2. 海康工业相机的一些坑(USB接口的相机连上halcon17后,客户端无法打开相机,错误是无驱动,但是驱动是好好的,如何解决)

    题主的环境 是:win10 + halcon17+海康工业相机(MV-CE060-10UC 系列) 只能说海康的工业相机有点坑,首选下载sdk别去海康威视官网,你是找不到的,他们分开了,需要访问这个网 ...

  3. 机器视觉--使用halcon标定助手进行相机标定

    一.点击选项卡:---助手--创建新的calibration,可以设置自己的摄相机参数. 二.选择描述文件,cpd文件,就是选择你所需要的标定板的尺寸样式. 如果没有你想使用的标定板,可以通过生成标定 ...

  4. Halcon联合C#实现相机实时显示采集图像

    窗体如图: 本窗体功能为打开相机.相机的实时显示采集.关闭相机. HALCON代码: * Image Acquisition 01: Code generated by Image Acquisiti ...

  5. opencv打开相机实时采集与处理

    下面是opencv官方文档中的一个例子, 演示了如何打开相机,获取图片,对图片进行处理 main函数也不需要输入参数,配置好环境直接就可以运行 把处理函数进行修改,就可以实现不同的功能 /* Open ...

  6. [转载]input[type=file]在移动端各浏览器无法适配打开相机的问题。

    原文地址:input[type=file]在移动端各浏览器无法适配打开相机的问题.作者:韩小文 近期有一需求是拍照上传用户头像并能进行区域性的截取操作. 故使用了input[type=file]标签进 ...

  7. 关于手机横屏打开相机或者相册闪退解决方案

    今天遇到一个需求就是在手机横屏的时候要打开相册相机,但是在打开的手就报错,经过一上午的查资料,看文档,知道了问题所在,原来UIImagePickerController 只支持竖屏 解决思路 1,让U ...

  8. opencvsharp打开相机并视频显示

    参考:https://www.coder.work/article/2085334 内容:在winform和opencvsharp的环境下,利用一个button事件控制相机(打开和关闭),并将相机获取 ...

  9. vue 公众号扫描_vue编写微信公众号打开相机功能

    vue编写微信公众号打开相机功能,什么都不多说直接上代码 页面布局代码 class="previewer-demo-img" :key="index" :src ...

最新文章

  1. 汇编语言中将数据、代码、栈放入不同的段
  2. 301重定向IIS设置,及伪静态后 301重定向出错案例分享
  3. 《天天数学》连载16:一月十六日
  4. Android原生系统API自带dp、px、sp单位转换
  5. pwm gpio android,关于占空比与PWM_以及GPIO背光开关
  6. 蚂蚁课堂-第四期-基于springcloud构建微服务电商项目_阿里巴巴29个屌炸天的开源项目,你用过几个?附编程资料!!!...
  7. java异常练习:要求用户输入数字,捕获并处理用户输入错误的异常,给用户进行提示
  8. 使用data attributes
  9. 电子计算机第一代到第四代,从第一代电子计算机到第四代计算机的体系结构都是由运算器、控制器、存储器、输入设备和输出设备组成的,称为( )体系结构。...
  10. php js轮播图片代码,html中用JS实现图片轮播的实例代码
  11. P4与5G UPF实践
  12. HTML中设置td的字体颜色
  13. 小孩由祖母带大会越发机灵[图]
  14. Matplotlib_2
  15. Goland嗖嗖的: 快捷键,自动生成代码等效率小技巧
  16. JSPX使用的几点注意
  17. 计算机硬件 软件和用户的关系,大家都知道计算机包含硬件和软件,那这两者之间区别是什么呢?...
  18. switch中return和break的作用不一样
  19. php先乘除还是先加减,加减乘除运算法则是什么?
  20. [Unity] 优化您的移动游戏性能2020(中)

热门文章

  1. Caddy 源码阅读
  2. 《最强NBA》——手游产品测评
  3. 《神雕瞎驴》,金庸看后哭了^-^
  4. goland下载与安装教程(详细)
  5. u盘在计算机硬盘量,电脑硬盘指示灯一直亮怎么办
  6. 你即将拥有HDMI2.1,纯光纤HDMI最高支持72Gbps试用体验
  7. 联想hx系列服务器,联想ThinkAgile HX系列 融合
  8. 六轴机器人控制系统软件设计
  9. Eclipse “cannot be resolved to a type”
  10. java通过filter单点登陆