Baumer工业相机堡盟相机如何使用BGAPI SDK和Opencv联动实现图像转换成视频(C#)
Baumer工业相机堡盟相机如何使用BGAPI SDK和Opencv联动实现图像转换成视频
- Baumer工业相机
- Baumer工业相机SDK技术背景
- 代码分析
- 第一步:先引用OpenCV库
- 第二步:引用图像文件夹生成视频
- 工业相机图像通过OpenCV转为视频的优点
- 工业相机图像转为视频的行业应用
Baumer工业相机
Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。
Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。
Baumer工业相机的BGAPI SDK可以和OpenCV进行联合实现图像转换成视频的功能。
Baumer工业相机SDK技术背景
Baumer工业相机的BGAPI SDK可以提供相机的图像原始数据,Halcon具有极为巨大的图像处理库,在图像处理领域非常强大,功能丰富,使用于工业视觉检测。
工业相机的SDK(Software Development Kit)是为了方便开发人员对工业相机进行控制和图像采集而提供的一套软件工具。而Halcon是一款强大的机器视觉软件,能够进行图像处理、分析、识别等多种任务。
Baumer工业相机软件CameraExplorer 3.3.2版本下载路径如下:
https://download.csdn.net/download/xianzuzhicai/87426794(Baumer工业相机软件CameraExplorer-Windows-x64版本)
代码分析
本文介绍使用BGAPI SDK对Baumer工业相机进行开发时,使用OpenCV作为图像处理库进行视频生成的相关功能。
第一步:先引用OpenCV库
本文使用“opencv_ffmpeg410_64.dll”和其它常用OpenCV库作为功能应用显示视频生成功能
C#环境下引用OpencCV库代码如下所示:
using OpenCvSharp;
using OpenCvSharp.Dnn;
using OpenCvSharp.Extensions;
第二步:引用图像文件夹生成视频
后续进行图像转换成视频的核心代码,如下所示:
string VideoSavePath = AppDomain.CurrentDomain.BaseDirectory;
string videopath = "";
private void CreateVideo_Click(object sender, EventArgs e)
{//string VideoSavePath = AppDomain.CurrentDomain.BaseDirectory; FolderBrowserDialog dlg = new FolderBrowserDialog();dlg.Description = "请选择视频保存路径";dlg.SelectedPath = VideoSavePath;if (DialogResult.OK == dlg.ShowDialog()){VideoSavePath = dlg.SelectedPath;SaveVideoPathDisplay.Text = VideoSavePath;videopath = VideoSavePath+"\\" + "OutputVideo.avi";string task_path = pImgFileDir;if (!Directory.Exists(task_path)){MessageBox.Show("未选择生成视频的源图片文件夹路径");return;}DirectoryInfo dir = new DirectoryInfo(task_path);int imagecount = 0; int width1 = 0; int height1 = 0;DateTime dt1 = DateTime.Now;foreach (FileInfo file in dir.GetFiles("*.bmp", SearchOption.AllDirectories)){imagecount = imagecount + 1;string Imagepath = file.FullName;//Bitmap image0 = file2img(Imagepath);//Mat matimg = OpenCvSharp.Extensions.BitmapConverter.ToMat(image0); Mat mat_res_8 = Cv2.ImRead(Imagepath, ImreadModes.Grayscale);width1 = mat_res_8.Width; height1 = mat_res_8.Height;break;}if (imagecount > 0 & width1 > 0 & height1 > 0){int fpsint = (Int32)numericUpDown3.Value;video = new VideoWriter(videopath, VideoWriter.FourCC('X', 'V', 'I', 'D'), fpsint,new OpenCvSharp.Size((double)width1, (double)height1), false);OnNotifyShowRecieveMsg("开始生成视频");foreach (FileInfo file in dir.GetFiles("*.bmp", SearchOption.AllDirectories)){string Imagename = file.Name;string Imagepath = file.FullName;Mat mat_res_8 = Cv2.ImRead(Imagepath, ImreadModes.Grayscale);//CreateVideoFromImage(mat_res_8);video.Write(mat_res_8);if (Cv2.WaitKey(1) == 27)//隐藏指令:按ESC可停止生成视频{break;}}video.Release();OnNotifyShowRecieveMsg("生成视频已完成");DateTime dt2 = DateTime.Now;TimeSpan ts = dt2.Subtract(dt1);double bb = (dt2 - dt1).Ticks / 10000000;//转换成秒Int32 NowMinu = (Int32)ts.TotalSeconds;OnNotifyShowRecieveMsg("生成时间:" + NowMinu+"S");string ExplorPath = VideoSavePath;//if (Directory.Exists(ExplorPath))// System.Diagnostics.Process.Start(ExplorPath);if (Directory.Exists(ExplorPath)){if (File.Exists(videopath)){OnNotifyShowRecieveMsg("自动打开视频路径");string pathnew = "/select," + videopath;System.Diagnostics.Process.Start("Explorer.exe", @pathnew);} }}else{MessageBox.Show("选择路径下无对应图片,无法生成视频");}} }
工业相机图像通过OpenCV转为视频的优点
-
低水平图像处理: OPENCV为低级别的图像处理提供了一套丰富的库。它允许轻松访问图像特征,如对比度、亮度和颜色校正。
-
实时视频处理: 使用OPENCV,你可以实时处理视频流,允许对处理过程进行即时反馈和调整。
-
精确的物体检测: OPENCV提供先进的物体检测和识别算法,能够准确识别和跟踪视频流中的物体。
-
高效的硬件利用: OPENCV的设计旨在最大限度地提高硬件利用率,使其成为一个高效的视频处理平台。
-
跨平台兼容性: OPENCV与多种操作系统兼容,使其易于集成到现有的软件系统中。
总的来说,通过OPENCV将工业相机图像转换为视频,可以实现高效、准确、实时的图像处理和分析,使其成为工业应用的有力工具。
工业相机图像转为视频的行业应用
-
制造业: 工业相机可用于捕捉装配线、机器和设备的图像,这些图像可转换为视频,用于监测生产和质量控制。
-
医疗:工业相机用于医疗成像设备,如X射线、MRI、CT扫描和超声波。将这些图像转换为视频后,医生和医疗专业人员可以实时查看和分析图像。
-
安全和监视: 工业相机被用于公共场所、办公室和家庭的安全和监控。将图像转换为视频可以进行连续监控,并更容易分析。
-
交通: 工业相机被用于交通系统,如机场、高速公路和火车,以监测交通和确保安全。将图像转换为视频可以对交通模式和潜在的安全隐患进行实时监控和分析。
-
农业: 工业相机被用于农业,以监测作物、牲畜和机械。将这些图像转换为视频后,农民和农业专业人员可以监测和分析作物和牲畜的健康和生长情况。
相关文章:
Baumer工业相机堡盟相机如何使用BGAPI SDK和Opencv联动实现图像转换成视频(C#)
Baumer工业相机堡盟相机如何使用BGAPI SDK和Opencv联动实现图像转换成视频Baumer工业相机Baumer工业相机SDK技术背景代码分析第一步:先引用OpenCV库第二步:引用图像文件夹生成视频工业相机图像通过OpenCV转为视频的优点工业相机图像转为视频的行业应用…...

Redis常用命令以及如何在Java中操作Redis
前言Redis是一个基于内存的key-value结构数据库,是互联网技术领域使用最为广泛的存储中间件。Redis基于内存存储,读写性能高,适合存储热点数据(热点商品、资讯、新闻)。Redis是一个开源的内存中的数据结构存储系统&…...

ASEMI代理AD7980BRMZRL7原装ADI(亚德诺)车规级AD7980BRMZRL7
编辑:ll ASEMI代理AD7980BRMZRL7原装ADI(亚德诺)车规级AD7980BRMZRL7 型号:AD7980BRMZRL7 品牌:ADI/亚德诺 封装:MSOP-10 批号:2023 安装类型:表面贴装型 AD7980BRMZRL7 汽车…...
leetcode141:环形链表
给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(…...

lattice diamond软件使用
1.diamond软件破解: lisence坚果云下载;或者这个博主操作环境变量设置: 2. 调用IP 有两种方式,依据芯片或者软件版本改变。 传统的IPexpress,每个IP单独例化。 新出的Clarity,多个IP在同一个顶层内调用…...

scala泛型
目录 类型参数 泛型函数: 协变,逆变,不变 泛型上下限: 上下文限定: 泛型是一种类型参数,该类型参数可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法 类型参数 调用时不指定…...

程序员与ChatGPT的日常问答
程序员与ChatGPT的日常问答GPT3.5与GPT4.0能力对比技术问题工具问题编解码问题其他问题本文记录下调教ChatGPT的日常。 GPT3.5与GPT4.0能力对比 Q:采用同一个问题提问,对比下GPT3.5和GPT4.0的能力区别,比如:帮我列一个小白入门音频…...
如何创建高效的Prompt和ChatGPT等大语言模型AI对话
大语言模型,如OpenAI的GPT-4,是一种基于深度学习技术的自然语言处理工具,它可以理解自然语言并为用户提供有价值的回答。然而,要从大语言模型中获得高质量的回答,你需要学会如何高效地提问。本文将从原理出发ÿ…...

043:cesium加载Bing地图(多种形式)
第043个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载加载Bing地图。这里显示4种形式的地图,分别为:AERIAL、ROAD、CANVAS_DARK、AERIAL_WITH_LABELS。参考后面的API,还有其他几种形式。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章…...

vscode代码片段生成
在刚学习vue的时候,有些代码片段是经常写的,在vscode中写一个代码片段可以帮助快速生成。 生成步骤: VSCode中的代码片段有固定的格式,所以我们一般会借助于一个在线工具来完成。 具体的步骤如下: 第一步,复制自己需…...

数据规整:聚合、合并和重塑
目录一、层次化索引重排与分级排序根据级别汇总统计二、合并数据集数据库风格的DataFrame合并索引上的合并轴向连接合并重叠数据三、重塑和轴向旋转重塑层次化索引将“长格式”旋转为“宽格式”将“宽格式”旋转为“长格式”一、层次化索引 层次化索引(hierarchica…...

开心档之C++ 信号处理
C 信号处理 目录 C 信号处理 signal() 函数 实例 raise() 函数 实例 信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 CtrlC 产生中断。 有些信号不能被程序捕获,但是下表…...

ChatGPT惨遭围剿?多国封杀、近万人联名抵制……
最近,全世界燃起一股围剿ChatGPT的势头。由马斯克、图灵奖得主Bengio等千人联名的“暂停高级AI研发”的公开信,目前签名数量已上升至9000多人。除了业内大佬,欧盟各国和白宫也纷纷出手。 最早“动手”的是意大利,直接在全国上下封…...

SpringBoot监听器
1.寻找spring.factories配置文件对应的监听器,主要要写监听器的全路径名,不然反射会报错 SpringBoot底层是如何读取META-INF/spring.factories的配置的? 1.遍历所有jar下的META-INF/spring.factories配置文件 2.读取配置文件下的所有属性&a…...

【网络安全】SQL注入--报错注入
报错注入报错注入定义代码展示常用的报错语句1.获取数据库名称2.获取mysql账号密码3.获取表名4.获取字段名5.获取账号密码报错注入定义 报错注入:利用sql语句的不规范,获取相关sql提示信息 代码展示 常用的报错语句 select first_name, last_name FROM…...
APP隐私整改建议
1、违规收集个人信息 情形一: APP首次启动时,未有以弹窗形式明示个人信息保护政策。 改进建议: APP首次启动时,以弹窗等形式向用户明示个人信息保护政策。 情形二: 个人信息保护政策未有说明个人信息处理的目的、方…...

MySQL数据模型 and 通用语法 and 分类
关系型数据库 关系型数据库是由多张能互相连接的二维表组成的数据库。 优点: 1.都是使用表结构,格式一致,易于维护。 2.使用通用的SQL语言操作,使用方便,可用于复杂查询。 3.数据存储在磁盘中,安全。 …...
一款识别域名是否使用cdn的工具cdnChecker
cdnChecker 一款识别域名是否使用cdn的工具 https://github.com/alwaystest18/cdnChecker 背景 红队打点时经常会有收集子域名然后转成ip进而扩展ip段进行脆弱点寻找的需求,如果域名使用cdn,会导致收集错误的ip段,因此我们需要排除cdn来收…...

Ant Design Vue的汉化
Ant Design Vue的汉化 1. 引入依赖 import zhCN from "ant-design-vue/lib/locale-provider/zh_CN"; // 汉化 export default {data () {zhCN,} }2. 标签包裹需要汉化的组件 <a-config-provider :locale"zhCN"><a-table :row-selection"ro…...

spring cloud中实现接口广播请求到服务提供者
一、背景 假如现在有一台服务A,两台服务B,可以简化为如下图模型: 需求:一次请求服务A需要同时将请求广播打到两台服务B上。 二、实现方案 2.1 需要应用到两个类: 2.1.1:LoadBalancerClient package org…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...

elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...