c# 网口相机可以通过_c# Halcon 实现通过相机图像采集及处理
【实例简介】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 实现通过相机图像采集及处理相关推荐
- Halcon|读取3D相机点云数据
Halcon|读取3D相机点云数据 最近发现很多小伙伴在使用Halcon处理3D工业相机扫描结果的时候遇到了"如何读取"的问题.一般的3D工业相机储存数据的格式有txt格式.tif ...
- 【halcon 线扫相机二维码矫正算法】
halcon 线扫相机畸变二维码矫正算法 线扫相机拍照畸变 1.二维码定位与裁剪 图像矫正 运行结果 总结 线扫相机拍照畸变 线扫相机拍摄图片分辨率较高,但是由于相机本身或者或者拍照目标的运动,容易造 ...
- Halcon之单相机标定
Halcon之单相机标定Halcon之单相机标定Halcon之单相机标定 相机的标定就是通过获取相机的内外参数,来纠正畸变和获取物理尺寸 纠正了畸变,测量才会准确(测量项目一般都需要考虑纠正畸变) 标 ...
- C# 使用Sentech相机sdk 获取图像,转换为halcon HImage的两种方法
C# 使用Sentech相机sdk 获取图像,转换为halcon HImage的两种方法 引:https://blog.csdn.net/sc6231565/article/details/51095 ...
- 小杨说事-基于Halcon的多相机坐标系统一原理个人理解
大家好呀,时隔两年小杨说事系列又开始更新了,打工人在苦逼的自动化行业里面挣扎着,工作了三年看到还有很多朋友在学习机器视觉,尤其是定位类型项目,旋转中心,分离轴,多相机标定等概念还是剪不断,里还乱的状态 ...
- basler相机的调试与配置以及多相机同时运行(完整版)
之前在实验室做过一段时间basler相机的调试与配置工作,现将当时的工作整理汇总,以方便日后再用.注:本博客引用的所有视频链接,皆为自己实验室之前的师兄所录制,当做了我当时这部分工作入门的教学视频. ...
- Baumer工业相机堡盟相机不满帧如何使用CameraExplorer设置相机参数让它的帧率达到满帧
项目场景 Baumer工业相机堡盟相机是一种高性能.高质量的工业相机,可用于各种应用场景,如物体检测.计数和识别.运动分析和图像处理. Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分 ...
- dalsa线扫相机调试文档_线阵相机调试文档
1.相机型号参数相机:线16k CL 分辨率:16384 x 1 像素大小:3.52 μm x 3.52 μm 麦克斯行费率:48 千赫 镜头安装(螺纹):M72 x 1 产品编号:LA-CM-16K ...
- 相机模型与标定(一)--相机标定概述
以下内容来自: http://baike.baidu.com/link?url=RAjUg33ftcbDDjE_tFKS80p_azC9REyLOzBTbqqSq5iIIXo0sp20NJk28RW- ...
最新文章
- switch和case的理解
- go1.8之安装配置
- centos 调整系统时间
- day 33(套接字,TCP 与 UDP)
- 虚拟机VMware操作系统安装
- 禁毒学、油画、乌尔都语……字节跳动程序员的专业有多奇特丨技术同学大数据报告...
- java线程同步barrier_Java多线程同步工具类之CyclicBarrier
- python3 设置默认编码_Python3的字符编码乱码问题解决思路
- ubuntu php 解析,ubuntu运行后台php服务详解
- npm包管理器安装模块
- 检验int值在list中是否存在_R语言统计与绘图:卡方检验
- nlp论文——《Efficient Estimation of Word Representations in Vector Space》(向量空间中词表示的有效估计)
- javascript第三节
- 永久禁用software reporter 进程,占用高解决方法。【永久禁用software_reporter_tool.exe程序】
- 一个基于WinHttp的轻量级的分片下载库介绍
- 深度学习之facenet人脸识别网络介绍
- 2022年终结——人生中最美好的一站
- 用excel打开一个xls文件进度到36%就不动了
- .bat文件注册.ocx+win8开机获得管理员权限+运行程序自动注册.ocx
- MySQL Packet for query is too large (xxx > xxx)...by setting the ‘max_allowed_packet‘ variable.的解决办法
热门文章
- leetcode题目整理
- 09基于对象编程风格
- LCA树两个节点最低公共祖先
- 电脑格式化的危害_防止硬盘被格式化的六大方法
- php parse url 中文,php parse_url()函数解析URL用法总结
- java fx 重绘_如何重绘JAVA FX 2.2中的窗口(舞台)
- python menu实例_python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例...
- 图片底下配的文字叫什么_PPT排版狂想篇 | 如何用一张图片搞定30种排版
- 服务器网络销售软文,关于云服务器的软文
- android对象识别实验报告,Android 3相册实验报告.doc