大恒MER相机采集图像

您所在的位置:网站首页 大恒相机软件打开找不到相机了 大恒MER相机采集图像

大恒MER相机采集图像

2024-07-13 08:33| 来源: 网络整理| 查看: 265

文章目录 前言一、相机整体工作流程二、图像采集代码

前言

记录一下使用大恒的MER相机采集图片的过程

一、相机整体工作流程

相机的整体工作流程如图所示: 在这里插入图片描述

二、图像采集代码

前提说明:运行前在相机驱动安装文件GalaxySDK中找到GxIAPI.dll文件,并复制到Samples–Python SDK–gxipy文件夹里面,否则运行会提示缺少GxIAPI.dll文件,然后把gxipy模块复制到项目文件中,才能导入成功。 代码如下:

import gxipy as gx from PIL import Image print("") print("-------------------------------------------------------------") print("Sample to show how to acquire color image continuously and show acquired image.") print("-------------------------------------------------------------") print("") print("Initializing......") print("") # 创建设备管理对象 device_manager = gx.DeviceManager() # 枚举设备,dev_num为相机数量 dev_num, dev_info_list = device_manager.updata_device_list() if dev_num == 0: print("Number of enumerated devices is 0") # 打开相机 cam = device_manager.open_device_by_index(1) # 设置连续获取模式 cam.TriggerMode.set(gx.GxSwithEntry.OFF) # 设置曝光时间 cam.ExposureTime.set(10000.0) # 设置增益,增益越大,噪音越大 cam.Gain.set(10.0) # 获取改善图像质量的参数 if cam.GammaParam.is_readable(): # gamma参数 gamma_value = cam.GammaParam.get() gamma_lut = gx.Utility.get_gamma_lut(gamma_value) else: gamma_lut = None if cam.ContrastParam.is_readable(): # 对比度参数 contrast_value = cam.ContrastParam.get() contrast_lut = gx.Utility.get_contrast_lut(contrast_value) else: contrast_lut = None if cam.ColorCorrectionParam.is_readable(): # 白平衡参数 color_correction_param = cam.ColorCorrectionParam.get() else: color_correction_param = 0 # 开启采集控制 cam.stream_on() # 获取流通道个数 int_channel_num = cam.get_stream_channel_num() # 如果 int_channel_num == 1,设备只有一个流通道,列表 data_stream 元素个数为 1 # 如果 int_channel_num > 1,设备有多个流通道,列表 data_stream 元素个数大于 1 # 目前千兆网相机、 USB3.0、 USB2.0 相机均不支持多流通道 num = 1 # 设置采集图片的数量 for i in range(num): # 打开第0通道数据流 raw_image = cam.data_stream[0].get_image() # 判断是否为残帧 if raw_image.get_status() == gx.GxFrameStatusList.INCONPLETE: print("incomplete frame") # 把原始图像转换为RGB图像 RGB_image = raw_image.convert("RGB") # 改善图像质量 RGB_image.image_improvement(color_correction_param, contrast_lut, gamma_lut) # 把RGB图像转换为numpy数组 numpy_image = RGB_image.get_numoy_array() # 图片显示 img = Image.fromarray(numpy_image, "RGB") img.show() # 保存图像 img.save("{}.png".format(i)) # 关闭采集控制 cam.stream_off() # 关闭相机 cam.close_device()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3