当前位置: 首页 > news >正文

临海市建设局网站/关键词搜索引擎优化推广

临海市建设局网站,关键词搜索引擎优化推广,商务 服务类网站模板,软件开发专业考研Baumer工业相机堡盟工业相机通过BGAPISDK使用图像回调函数全帧率保存图像(C) Baumer工业相机Baumer工业相机全帧率保存的技术背景Baumer工业相机通过BGAPISDK使用相机图像回调函数1.引用合适的类文件2.通过BGAPISDK在相机图像回调函数全帧率保存 Baumer工…

Baumer工业相机堡盟工业相机通过BGAPISDK使用图像回调函数全帧率保存图像(C++)

  • Baumer工业相机
  • Baumer工业相机全帧率保存的技术背景
  • Baumer工业相机通过BGAPISDK使用相机图像回调函数
    • 1.引用合适的类文件
    • 2.通过BGAPISDK在相机图像回调函数全帧率保存
  • Baumer工业相机全帧率保存图像的优势
  • Baumer工业相机全帧率保存图像的行业应用

Baumer工业相机

Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。

Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。

Baumer工业相机由于其性能和质量的优越和稳定,常用于高速同步采集领域,通常使用各种图像算法来提高其捕获的图像的质量。

Baumer工业相机全帧率保存的技术背景

为什么有些应用需要使用工业相机全帧率将图像保存到硬盘空间?

因为工业相机的设计是为了捕捉具有高速和高分辨率的图像,并且能够产生具有高比特深度的未经压缩的图像。

这允许实时捕获详细和高质量的图像,这在制造业和科学研究等行业可能是必要的,因为准确和快速的图像数据采集是至关重要的。

此外,使用工业相机可以确保在图像采集和存储过程中没有图像质量的损失,从而获得更可靠和一致的结果。

本文这里介绍通过BGAPISDK使用图像回调函数进行全帧率保存的方法。

Baumer工业相机通过BGAPISDK使用相机图像回调函数

下面介绍在C++里Baumer工业相机如何使用BGAPISDK的相机图像回调函数

1.引用合适的类文件

代码如下(示例):


#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <set>
#include <vector>
#include <algorithm>
#include <string>
#include "bgapi2_genicam/bgapi2_genicam.hpp"

2.通过BGAPISDK在相机图像回调函数全帧率保存

//图像回调函数
//==================
void BGAPI2CALL BufferHandler( void * callBackOwner, Buffer * pBufferFilled )
{CGigeDemoDlg* pDlg = (CGigeDemoDlg*)callBackOwner;unsigned char* imagebuffer = NULL;USES_CONVERSION;try{if(pBufferFilled == NULL){}else if(pBufferFilled->GetIsIncomplete() == true){// queue buffer againpBufferFilled->QueueBuffer();}else{pDlg->FrameID= pBufferFilled->GetFrameID();                                                 //获取当前图像FrameID显示帧率int frameid1 = pBufferFilled->GetFrameID();    int width = 0, height = 0;width = (int)pBufferFilled->GetWidth();height = (int)pBufferFilled->GetHeight();			//获取当前图像像素长宽CString PixelFormat1 = (CString)pBufferFilled->GetPixelFormat();							//获取当前图像像素格式imagebuffer = (BYTE*)((bo_int64)pBufferFilled->GetMemPtr()+pBufferFilled->GetImageOffset());//获取当前图像数据#pragma region //保存图像功能已停用(抓拍功能)if(pDlg->m_bSaveImage &&!pDlg->m_strDirectory.IsEmpty()){CTime time = CTime::GetCurrentTime(); CString strtime;strtime.Format(_T("\\%4d%2d%2d%2d%2d%2d"),time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond());CString  strpath = pDlg->m_strDirectory+strtime+"-";CString  strpath2;strpath2.Format(_T("%s%d%s"),strpath,frameid1,_T(".jpg"));//pDlg->FullFrameSaveImageName.Add(strpath2);pDlg->SaveImageMono(strpath2, imagebuffer,width,height);pDlg->TestNum0 =pDlg->TestNum0 +1;if(pDlg->TestNum0==60){pDlg->m_bSaveImage = false;}}#pragma endregion delete pDlg->m_pBitmap ;pDlg->m_pBitmap =NULL;// queue buffer againpBufferFilled->QueueBuffer();}}catch (BGAPI2::Exceptions::IException& ex){CString str;str.Format(_T("ExceptionType:%s! ErrorDescription:%s in function:%s"),ex.GetType(),ex.GetErrorDescription(),ex.GetFunctionName());		}	
}//将图像数据保存在本地
bool CGigeDemoDlg::SaveImageMono(CString str,BYTE* bdata,int width,int height)
{		if (str.IsEmpty()) return false;HANDLE hFile = CreateFile(str,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);//DWORD dwError = GetLastError();if (!hFile || hFile == INVALID_HANDLE_VALUE) return false;// BITMAPFILEHEADER	FileHeader;BITMAPINFOHEADER	InfoHeader;RGBQUAD rgbQuad[256];DWORD dwImageSize				= width*height;FileHeader.bfType				= 0x4D42; // "BM"FileHeader.bfSize				= sizeof(FileHeader) + sizeof(InfoHeader) + dwImageSize;FileHeader.bfReserved1			= FileHeader.bfReserved2 = 0;FileHeader.bfOffBits			= sizeof(FileHeader) + sizeof(InfoHeader);ZeroMemory(&InfoHeader, sizeof(InfoHeader));InfoHeader.biWidth				= width;InfoHeader.biHeight				= -height;InfoHeader.biSizeImage			= dwImageSize;InfoHeader.biBitCount			= 8;InfoHeader.biCompression		= BI_RGB;InfoHeader.biPlanes				= 1;InfoHeader.biSize				= sizeof(BITMAPINFOHEADER);InfoHeader.biXPelsPerMeter		= 0xEC4;InfoHeader.biYPelsPerMeter		= 0xEC4;for ( int i=0;i<256; i++ ){rgbQuad[i].rgbBlue = (BYTE)i;rgbQuad[i].rgbGreen = (BYTE)i;rgbQuad[i].rgbRed = (BYTE)i;rgbQuad[i].rgbReserved = 0;}DWORD Written;WriteFile(hFile, (LPVOID)&FileHeader,sizeof(BITMAPFILEHEADER),&Written, NULL);WriteFile(hFile, (LPVOID)&InfoHeader,sizeof(BITMAPINFOHEADER),&Written, NULL);WriteFile(hFile, (LPVOID)rgbQuad,256*sizeof(RGBQUAD),&Written,NULL);BYTE* src = bdata;//int stride = m_Width*4;//DWORD bytes = m_Width * 4;//for (unsigned long y = 0; y < NHEIGHT; y++) {WriteFile(hFile, (LPVOID)src,dwImageSize,&Written,NULL);//}CloseHandle(hFile);return true;
}

呈现效果如下所示:
在这里插入图片描述

如上测试结果显示可以全帧率保存60张图片,适当修改可以实现定制化需求。

Baumer工业相机全帧率保存图像的优势

1、能够清晰、精确地捕捉快速移动的物体,这对制造业和体育等行业非常重要。

2、通过高速拍摄,工业相机可以捕捉到运动中部件和产品的图像,从而可以发现缺陷和质量问题。

3、这项技术对于分析运动员和动物的运动也是至关重要的,可以为训练员和教练员提供深入了解。

4、高速拍摄功能允许慢动作回放,使人们能够进一步分析所拍摄的画面。

5、包括能够捕捉快速移动物体的图像而不产生运动模糊,提高测量物体速度和位置的准确性,以及实时检测和分析快速过程和变化的能力。

6、这些相机可以在各种行业中发挥作用,包括制造业、自动化、机器人技术等。

7、高速成像可以为流程提供有价值的见解,并帮助公司优化其运营,以提高效率和生产力。

Baumer工业相机全帧率保存图像的行业应用

机器视觉: 全帧率保存图像的工业相机可用于机器视觉应用,以捕获快速移动的物体或过程的图像。这可用于制造、质量控制或检查应用。

机器人技术:全帧率保存图像的工业相机可用于机器人技术应用,以捕捉快速移动物体的图像或跟踪机器人的运动。这可用于制造、装配或取放应用。

医学成像: 全帧率保存图像的工业相机可用于医疗成像应用,以捕捉内部器官的高速图像或跟踪手术器械的运动。这可用于微创手术或诊断成像。

体育分析: 全帧率保存图像的工业相机可用于体育分析应用,捕捉运动员运动时的高速图像。这可用于训练或体育广播应用。

航空航天: 全帧率保存图像的工业相机可用于航空航天领域,捕捉高速事件的图像,如火箭发射或飞机测试。

总之,工业相机的全帧率保存图像功能是任何需要高速图像采集、高效数据传输和实时图像分析的应用的理想选择。

http://www.jmfq.cn/news/5068981.html

相关文章:

  • 山西住房建设厅官方网站/济南竞价托管公司
  • 网站推广优化方案/我赢网客服系统
  • 手机免费制作微信小程序/网站seo优化多少钱
  • 太原推广型网站建设/广州seo快速排名
  • 虚拟主机多网站/英文seo外链发布工具
  • 手机网站制作公司/网络营销学什么内容
  • 网站制作公司信科网络/做网站建设优化的公司排名
  • 网站推广如何做/色盲色弱测试
  • 芜湖公司做网站/网上店铺的推广方法有哪些
  • wordpress推荐插件/最专业的seo公司
  • 广州有专做网站/域名信息查询网站
  • 如何制作网站后台/2022年明星百度指数排行
  • b站直播4000观看人数/外贸接单平台网站
  • 大城网站建设/seo投放是什么意思
  • 网站推广明细报价表/广东省各城市疫情搜索高峰进度
  • 建网站需要多久/长春seo整站优化
  • 网站开发设计素材/1个百度指数代表多少搜索
  • 静态网站如何做优化/百度app
  • 杭州手机网站制作电脑公司/怎么做关键词优化排名
  • 重庆便宜网站建设/中央新闻联播
  • 百度搜不到我的网站/网络营销专业是学什么的
  • 怎么用ps做网站ui/互联网营销方式有哪些
  • 网站做浏览器兼容/百度投流运营
  • 企业网站的作用/如何弄一个自己的网站
  • 青岛建设银行股份有限公司网站/百度seo工作室
  • 博物馆网站建设公司/郑州seo排名扣费
  • 胶南做网站/找客户的软件有哪些
  • 珠海响应式网站建设/网络营销推广活动有哪些
  • 香港主机做福彩网站/销售管理
  • 做网站网页的人是不是思维/竹子建站官网