在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. 《机器人与数字人:基于MATLAB的建模与控制》——2.3节指数映射和k过程
  2. Python之经典编程练习题及源码
  3. c语言入门教程文库,C语言入门教程(全集)课件
  4. 知乎上这个程序员火了,竟是因为给老板修了一 次U盘
  5. cstring 不明确_股价不可预测明确时间点的涨跌
  6. 除了 Coding,程序员获得收入的四大途径!
  7. html5的所有标签页,HTML5所有标签总集
  8. JDK1.8之ConcurrentHashMap
  9. 专注于分享,米狗网!
  10. 实用干货:电放提单详解,与海运单、一般提单到底有什么区别?
  11. 学霸辞掉百万年薪只为专心“玩”纸,却推动了航天、医学等领域进步
  12. WORD中的格式控制符号
  13. Python爬取《明日之子》(腾讯视频)评论和弹幕,看看大家都在吐槽什么
  14. linux域名伪装,基于 Nginx 的 v2+websocket+tls 域名伪装
  15. MATLAB小波变换的图像融合系统[完美运行,GUI界面,详细教程,万字文稿]
  16. 周转时间,平均周转时间,带权周转时间
  17. 圣科鲁兹 计算机专业,加州大学圣克鲁兹分校计算机工程硕士专业 将发明创新融入到工业中!...
  18. GBase产品学习-8a支持隐式转换
  19. iOS基础UI瀑布流界面简单搭建
  20. poj 2751 双机调度问题Johnson算法(贪心)

热门文章

  1. 【安装配置Git】最新版Git安装教程
  2. JSON格式字符串解析,转换为JSONObject
  3. java中jdk的下载与安装
  4. linux命令--dmesg
  5. 大数据日志分析项目mapreduce程序
  6. python异常常见处理
  7. 网页打开android app,网页打开Android APP
  8. java获取机器的IP
  9. armadillo 使用杂记
  10. SpringCloud个人笔记