【实例简介】c# & Halcon 实现通过相机图像采集及处理

【实例截图】

【核心代码】

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using HalconDotNet;

namespace showpicture

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

HObject ho_image, ho_GrayImage, ho_regions;

HTuple hv_WindowHandle = null, hv_Height, hv_Width;

HTuple hv_AcqHandle = null;

private void button1_Click(object sender, EventArgs e)

{

string imagePath;

openFileDialog1.Filter = "JEPG文件|*.jpg*|BMP文件|*.bmp*";

openFileDialog1.RestoreDirectory = true;

HOperatorSet.GenEmptyObj(out ho_image);

HOperatorSet.GenEmptyObj(out ho_GrayImage);

HOperatorSet.GenEmptyObj(out ho_regions);

ho_image.Dispose();

if (openFileDialog1.ShowDialog() == DialogResult.OK) ;

imagePath = openFileDialog1.FileName;

HOperatorSet.ReadImage(out ho_image, imagePath);

}

private void button2_Click(object sender, EventArgs e)

{

HOperatorSet.OpenWindow(0, 0, hWindowControl1.Width, hWindowControl1.Height, hWindowControl1.HalconWindow, "", "", out hv_WindowHandle);

HDevWindowStack.Push(hv_WindowHandle);

ho_GrayImage.Dispose();

HOperatorSet.Rgb1ToGray(ho_image, out ho_GrayImage);

ho_regions.Dispose();

HOperatorSet.Threshold(ho_GrayImage, out ho_regions, 103, 145);

if (HDevWindowStack.IsOpen())

{

HOperatorSet.DispObj(ho_regions, HDevWindowStack.GetActive());

}

}

private void button3_Click(object sender, EventArgs e)

{

HOperatorSet.GenEmptyObj(out ho_image);

//Image Acquisition 01: Code generated by Image Acquisition 01

HOperatorSet.OpenFramegrabber("DirectShow", 1, 1, 0, 0, 0, 0, "default", 8, "rgb",

-1, "false", "default", "[0] USB 2.0 Camera", 0, -1, out hv_AcqHandle);

HOperatorSet.GrabImageStart(hv_AcqHandle, -1);

}

private void button4_Click(object sender, EventArgs e)

{

timer1.Enabled = true;

HOperatorSet.OpenWindow(0, 0, hWindowControl1.Width, hWindowControl1.Height, hWindowControl1.HalconWindow, "", "", out hv_WindowHandle);

HDevWindowStack.Push(hv_WindowHandle);

}

private void button6_Click(object sender, EventArgs e)

{

timer1.Enabled = false;

HOperatorSet.CloseFramegrabber(hv_AcqHandle);

ho_image.Dispose();

}

private void button7_Click(object sender, EventArgs e)

{

HOperatorSet.CloseWindow(HDevWindowStack.Pop());

}

private void timer1_Tick(object sender, EventArgs e)

{

ho_image.Dispose();

HOperatorSet.GrabImageAsync(out ho_image, hv_AcqHandle, -1);

HOperatorSet.GetImageSize(ho_image, out hv_Width, out hv_Height);

if (HDevWindowStack.IsOpen())

{

HOperatorSet.SetPart(HDevWindowStack.GetActive(), 0, 0, hv_Height, hv_Width);

}

if (HDevWindowStack.IsOpen())

{

HOperatorSet.DispObj(ho_image, HDevWindowStack.GetActive());

}

}

}

}

c# 网口相机可以通过_c# Halcon 实现通过相机图像采集及处理相关推荐

  1. Halcon|读取3D相机点云数据

    Halcon|读取3D相机点云数据 最近发现很多小伙伴在使用Halcon处理3D工业相机扫描结果的时候遇到了"如何读取"的问题.一般的3D工业相机储存数据的格式有txt格式.tif ...

  2. 【halcon 线扫相机二维码矫正算法】

    halcon 线扫相机畸变二维码矫正算法 线扫相机拍照畸变 1.二维码定位与裁剪 图像矫正 运行结果 总结 线扫相机拍照畸变 线扫相机拍摄图片分辨率较高,但是由于相机本身或者或者拍照目标的运动,容易造 ...

  3. Halcon之单相机标定

    Halcon之单相机标定Halcon之单相机标定Halcon之单相机标定 相机的标定就是通过获取相机的内外参数,来纠正畸变和获取物理尺寸 纠正了畸变,测量才会准确(测量项目一般都需要考虑纠正畸变) 标 ...

  4. C# 使用Sentech相机sdk 获取图像,转换为halcon HImage的两种方法

    C# 使用Sentech相机sdk 获取图像,转换为halcon HImage的两种方法 引:https://blog.csdn.net/sc6231565/article/details/51095 ...

  5. 小杨说事-基于Halcon的多相机坐标系统一原理个人理解

    大家好呀,时隔两年小杨说事系列又开始更新了,打工人在苦逼的自动化行业里面挣扎着,工作了三年看到还有很多朋友在学习机器视觉,尤其是定位类型项目,旋转中心,分离轴,多相机标定等概念还是剪不断,里还乱的状态 ...

  6. basler相机的调试与配置以及多相机同时运行(完整版)

    之前在实验室做过一段时间basler相机的调试与配置工作,现将当时的工作整理汇总,以方便日后再用.注:本博客引用的所有视频链接,皆为自己实验室之前的师兄所录制,当做了我当时这部分工作入门的教学视频. ...

  7. Baumer工业相机堡盟相机不满帧如何使用CameraExplorer设置相机参数让它的帧率达到满帧

    项目场景 Baumer工业相机堡盟相机是一种高性能.高质量的工业相机,可用于各种应用场景,如物体检测.计数和识别.运动分析和图像处理. Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分 ...

  8. dalsa线扫相机调试文档_线阵相机调试文档

    1.相机型号参数相机:线16k CL 分辨率:16384 x 1 像素大小:3.52 μm x 3.52 μm 麦克斯行费率:48 千赫 镜头安装(螺纹):M72 x 1 产品编号:LA-CM-16K ...

  9. 相机模型与标定(一)--相机标定概述

    以下内容来自: http://baike.baidu.com/link?url=RAjUg33ftcbDDjE_tFKS80p_azC9REyLOzBTbqqSq5iIIXo0sp20NJk28RW- ...

最新文章

  1. switch和case的理解
  2. go1.8之安装配置
  3. centos 调整系统时间
  4. day 33(套接字,TCP 与 UDP)
  5. 虚拟机VMware操作系统安装
  6. 禁毒学、油画、乌尔都语……字节跳动程序员的专业有多奇特丨技术同学大数据报告...
  7. java线程同步barrier_Java多线程同步工具类之CyclicBarrier
  8. python3 设置默认编码_Python3的字符编码乱码问题解决思路
  9. ubuntu php 解析,ubuntu运行后台php服务详解
  10. npm包管理器安装模块
  11. 检验int值在list中是否存在_R语言统计与绘图:卡方检验
  12. nlp论文——《Efficient Estimation of Word Representations in Vector Space》(向量空间中词表示的有效估计)
  13. javascript第三节
  14. 永久禁用software reporter 进程,占用高解决方法。【永久禁用software_reporter_tool.exe程序】
  15. 一个基于WinHttp的轻量级的分片下载库介绍
  16. 深度学习之facenet人脸识别网络介绍
  17. 2022年终结——人生中最美好的一站
  18. 用excel打开一个xls文件进度到36%就不动了
  19. .bat文件注册.ocx+win8开机获得管理员权限+运行程序自动注册.ocx
  20. MySQL Packet for query is too large (xxx > xxx)...by setting the ‘max_allowed_packet‘ variable.的解决办法

热门文章

  1. leetcode题目整理
  2. 09基于对象编程风格
  3. LCA树两个节点最低公共祖先
  4. 电脑格式化的危害_防止硬盘被格式化的六大方法
  5. php parse url 中文,php parse_url()函数解析URL用法总结
  6. java fx 重绘_如何重绘JAVA FX 2.2中的窗口(舞台)
  7. python menu实例_python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例...
  8. 图片底下配的文字叫什么_PPT排版狂想篇 | 如何用一张图片搞定30种排版
  9. 服务器网络销售软文,关于云服务器的软文
  10. android对象识别实验报告,Android 3相册实验报告.doc