HalconDotNet中的图像视频采集

文章目录

  • [1. 单相机视频图像采集](#1. 单相机视频图像采集)
  • [2. 多相机视频图像采集](#2. 多相机视频图像采集)
  • [3. 设置相机曝光时间](#3. 设置相机曝光时间)
  • [4. 实时图像显示](#4. 实时图像显示)
  • [5. 图像采集与保存](#5. 图像采集与保存)

1. 单相机视频图像采集

使用HalconDotNet进行单相机视频图像采集的基本步骤包括初始化相机、设置采集参数、开始采集、处理图像以及停止采集。

csharp 复制代码
using HalconDotNet;

public void SingleCameraCapture()
{
    HFramegrabber framegrabber = new HFramegrabber("GigEVision", 0, 0, 0, 0, 0, 0, "default", -1, "default", -1, "false", "default", "CameraName", 0, -1);
    HImage image = framegrabber.GrabImage();
    image.WriteImage("bmp", 0, "captured_image");
    framegrabber.CloseFramegrabber();
}

2. 多相机视频图像采集

多相机视频图像采集需要为每个相机创建独立的帧抓取器,并分别进行图像采集和处理。

csharp 复制代码
using HalconDotNet;

public void MultiCameraCapture()
{
    HFramegrabber framegrabber1 = new HFramegrabber("GigEVision", 0, 0, 0, 0, 0, 0, "default", -1, "default", -1, "false", "default", "Camera1", 0, -1);
    HFramegrabber framegrabber2 = new HFramegrabber("GigEVision", 0, 0, 0, 0, 0, 0, "default", -1, "default", -1, "false", "default", "Camera2", 0, -1);

    HImage image1 = framegrabber1.GrabImage();
    HImage image2 = framegrabber2.GrabImage();

    image1.WriteImage("bmp", 0, "captured_image1");
    image2.WriteImage("bmp", 0, "captured_image2");

    framegrabber1.CloseFramegrabber();
    framegrabber2.CloseFramegrabber();
}

3. 设置相机曝光时间

通过设置相机的曝光时间,可以控制图像的亮度和对比度。

csharp 复制代码
using HalconDotNet;

public void SetExposureTime()
{
    HFramegrabber framegrabber = new HFramegrabber("GigEVision", 0, 0, 0, 0, 0, 0, "default", -1, "default", -1, "false", "default", "CameraName", 0, -1);
    framegrabber.SetFramegrabberParam("ExposureTime", 5000); // 设置曝光时间为5000微秒
    HImage image = framegrabber.GrabImage();
    image.WriteImage("bmp", 0, "captured_image");
    framegrabber.CloseFramegrabber();
}

4. 实时图像显示

在采集图像的同时,实时显示图像可以用于监控和调试。

csharp 复制代码
using HalconDotNet;

public void RealTimeDisplay()
{
    HFramegrabber framegrabber = new HFramegrabber("GigEVision", 0, 0, 0, 0, 0, 0, "default", -1, "default", -1, "false", "default", "CameraName", 0, -1);
    HWindow window = new HWindow(0, 0, 512, 512, 0, "visible", "");

    while (true)
    {
        HImage image = framegrabber.GrabImage();
        window.DispImage(image);
        System.Threading.Thread.Sleep(100); // 控制显示频率
    }

    framegrabber.CloseFramegrabber();
}

5. 图像采集与保存

采集图像并保存到指定路径,适用于需要长期存储图像数据的场景。

csharp 复制代码
using HalconDotNet;

public void CaptureAndSave()
{
    HFramegrabber framegrabber = new HFramegrabber("GigEVision", 0, 0, 0, 0, 0, 0, "default", -1, "default", -1, "false", "default", "CameraName", 0, -1);
    HImage image = framegrabber.GrabImage();
    string savePath = "C:\\Images\\captured_image.bmp";
    image.WriteImage("bmp", 0, savePath);
    framegrabber.CloseFramegrabber();
}

这些示例代码展示了如何使用HalconDotNet进行单相机和多相机的视频图像采集,并涵盖了设置曝光时间、实时显示图像以及图像保存等常见操作。

相关推荐
Guheyunyi9 分钟前
什么是安全监测预警系统?应用场景有哪些?
大数据·运维·人工智能·安全·音视频
Funny_AI_LAB17 分钟前
GLM-OCR发布:性能SOTA,超越PaddleOCR-VL-1.5?
人工智能·计算机视觉·语言模型·ocr
esmap29 分钟前
OpenClaw与ESMAP AOA定位系统融合技术分析
前端·人工智能·计算机视觉·3d·ai·js
赋创小助手1 小时前
NVIDIA B200 GPU 技术解读:Blackwell 架构带来了哪些真实变化?
运维·服务器·人工智能·深度学习·计算机视觉·自然语言处理·架构
AAD555888991 小时前
工业纸板加工过程中的检测与识别_Cornernet_Hourglass104模型应用
人工智能·计算机视觉·目标跟踪
格林威1 小时前
Baumer相机电机转子偏心检测:实现动平衡预判的 5 个核心方法,附 OpenCV+Halcon 实战代码!
人工智能·深度学习·opencv·机器学习·计算机视觉·视觉检测·工业相机
青云计划2 小时前
知光项目用户关系模块
c#·linq
m5655bj2 小时前
使用 C# 修改 PDF 页面尺寸
java·pdf·c#
LittroInno2 小时前
TVMS视频管理平台 —— 目标识别跟踪
人工智能·计算机视觉·音视频
专注VB编程开发20年2 小时前
c#模仿内置 Socket.Receive(无需 out/ref,直接写回数据)
开发语言·c#