相关文章推荐
坏坏的羽毛球  ·  nestjs ...·  1 年前    · 
才高八斗的路灯  ·  Visual Studio ...·  1 年前    · 
乖乖的绿豆  ·  c++ - Clang 3.8 ...·  1 年前    · 

今天使用到了大恒的USB工业相机,需要逐帧率采集图片,并保存在本地。以下是采集过程。

1、安装python的PIL图像处理库

安装方法,点击此处:Win7 64位下Python安装PIL图像处理库

2、需要安装摄像机驱动

1.、进入大恒官网

官网地址,点击此处:大恒图像官网 在这里插入图片描述

2、点击注册,填写信息注册成功后,点击下载中心,找到自己使用的摄像头,以及对应的系统,进行驱动下载安装即可

3、直接在驱动安装路径下,找到Python SDK,然后直接在对应的目录下写脚本即可。

4、对部分常用参数进行封装

3、实现的脚本如下

import gxipy as gx
from PIL import Image
import datetime
Author:NoamaNelson
Date:2019-11-21
Discription:Secondary development of pythonsdk of Daheng camera.
def main():
    Width_set = 640 # 设置分辨率宽
    Height_set = 480 # 设置分辨率高
    framerate_set = 80 # 设置帧率
    num = 500 # 采集帧率次数(为调试用,可把后边的图像采集设置成while循环,进行无限制循环采集)
    print("")
    print("###############################################################")
    print("               连续获取彩色图像并显示获取的图像.")
    print("###############################################################")
    print("")
    print("摄像机初始化......")
    print("")
    #创建设备
    device_manager = gx.DeviceManager() # 创建设备对象
    dev_num, dev_info_list = device_manager.update_device_list() #枚举设备,即枚举所有可用的设备
    if dev_num is 0:
        print("Number of enumerated devices is 0")
        return
    else:
        print("")
        print("**********************************************************")
        print("创建设备成功,设备号为:%d" % dev_num)
    #通过设备序列号打开一个设备
    cam = device_manager.open_device_by_sn(dev_info_list[0].get("sn"))
    #如果是黑白相机
    if cam.PixelColorFilter.is_implemented() is False: # is_implemented判断枚举型属性参数是否已实现
        print("该示例不支持黑白相机.")
        cam.close_device()
        return
    else:
        print("")
        print("**********************************************************")
        print("打开彩色摄像机成功,SN号为:%s" % dev_info_list[0].get("sn"))
    #设置宽和高
    cam.Width.set(Width_set)
    cam.Height.set(Height_set)
    #设置连续采集
    #cam.TriggerMode.set(gx.GxSwitchEntry.OFF) # 设置触发模式
    cam.AcquisitionFrameRateMode.set(gx.GxSwitchEntry.ON)
    #设置帧率
    cam.AcquisitionFrameRate.set(framerate_set)
    print("")
    print("**********************************************************")
    print("用户设置的帧率为:%d fps"%framerate_set)
    framerate_get = cam.CurrentAcquisitionFrameRate.get() #获取当前采集的帧率
    print("当前采集的帧率为:%d fps"%framerate_get)
     #开始数据采集
    print("")
    print("**********************************************************")
    print("开始数据采集......")
    print("")
    cam.stream_on()
    #采集图像
    for i in range(num):
        raw_image = cam.data_stream[0].get_image() # 打开第0通道数据流
        if raw_image is None:
            print("获取彩色原始图像失败.")
            continue
        rgb_image = raw_image.convert("RGB") # 从彩色原始图像获取RGB图像
        if rgb_image is None:
            continue
        #rgb_image.image_improvement(color_correction_param, contrast_lut, gamma_lut)  # 实现图像增强
        numpy_image = rgb_image.get_numpy_array() # 从RGB图像数据创建numpy数组
        if numpy_image is None:
            continue
        img = Image.fromarray(numpy_image, 'RGB') # 展示获取的图像
        #img.show()
        mtime = datetime.datetime.now().strftime('%Y-%m-%d_%H_%M_%S')
        img.save(r"D:\image\\" + str(i) + str("-") + mtime + ".jpg") # 保存图片到本地
        print("Frame ID: %d   Height: %d   Width: %d   framerate_set:%dfps   framerate_get:%dfps"
              % (raw_image.get_frame_id(), raw_image.get_height(), raw_image.get_width(), framerate_set, framerate_get)) # 打印采集的图像的高度、宽度、帧ID、用户设置的帧率、当前采集到的帧率
    #停止采集
    print("")
    print("**********************************************************")
    print("摄像机已经停止采集")
    cam.stream_off()
    #关闭设备
    print("")
    print("**********************************************************")
    print("系统提示您:设备已经关闭!")
    cam.close_device()
if __name__ == "__main__":
    main()

4、运行结果

plastic thermal enhanced thin quad flat package; 100 leads; body 14 x 14 x 1 mm; exposed die pad ARCHIVED - MRF7S27130HR3, MRF7S27130HSR3 2500-2700 MHz, 23 W Avg., 28 V, WiMAX Lateral N-Channel ... 设计元服务 ARCHIVED - MRF8S23120HR3, MRF8S23120HSR3 2300-2400 MHz, 28 W Avg., 28 V LTE Lateral N-Channel RF ... Low-cost, low-power Arm926EJ microcontrollers with USB High-speed OTG, SD/MMC, and NAND flash co... MHVIC2115R2 2170 MHz, 26 V, 23/34 dBm W-CDMA RF LDMOS Wideband Integrated Power Amplifier - Archived 安全日报(2023.06.26) 案例研究|中国矿业大学基于JumpServer构建运维安全体系 AI算力反碎片化:世界上最快的统一矩阵乘法 2023 开放原子全球开源峰会高峰论坛成功举办 MRF5P21180HR6 2170 MHz, 38 W Avg., 28 V, 2 x W-CDMA Lateral N-Channel RF Power MOSFET MHL19338NN 1900-2000 MHz, 4.0 W, 30 dB RF Linear LDMOS Amplifier - Archived 图书搜索领域重大突破!用 Apache SeaTunnel、Milvus 和 OpenAI 提高书名相似度搜索精准度和效率 5 V, 3.3 V and 2.5 V quad UART, 5 Mbit/s (max.) with 16-byte FIFOs 飞致云开源社区月度动态报告(2023年7月) “短期结果需要和长期规划结合”| 技术人金句系列 ARCHIVED - MRF8S9260HR3, MRF8S9260HSR3 920-960 MHz, 75 W Avg., 28 V Single W-CDMA Lateral N-Chann... DPO 直接偏好优化:跳过复杂的对抗学习,语言模型本来就会奖励算法 MRF5S9070MR1 880 MHz, 70 W, 26 V Single N-CDMA Lateral N-Channel Broadband RF Power MOSFETs - Arc... ARCHIVED - MMRF1018NR1, MMR1018NBR1 470-860 MHz, 90 W, 50 V Broadband RF Power LDMOS Transistors ... 5 V, 3.3 V and 2.5 V quad UART, 5 Mbit/s (max.), with 64-byte FIFOs and infrared (IrDA) encoder/d... 探索开源创新理论|2023 开放原子全球开源峰会开源创新理论与实践分论坛成功召开 了不起的互联网老男孩,在创业路上不掉队 32-bit Arm® Cortex®-M4 MCU; up to 512 kB flash, 96 kB SRAM; USB Device/Host... Tellyouthepass勒索软件利用财务管理系统漏洞成规模入侵 MC68HC708MP16 HCMOS Microcontroller Unit TECHNICAL DATA - Data Sheet OpenTiny 前端组件库正式开源啦!面向未来,为开发者而生 一文读懂HfTiO高栅介质GeMOS电容 案例研究|小牛电动通过DataEase进行业务数据可视化分析 MDE6IC7120NR1, MDE6IC7120GNR1 728-768 MHz, 25 W Avg., 28 V Single W-CDMA RF LDMOS Wideband Integr... Real-time Edge Yocto Project User Guide MRF9200LR3, MRF9200LSR3 880 MHz, 40 W Avg., 26 V Single N-CDMA Lateral N-Channel RF Power MOSFETs plastic DIL-bent-SIL power package; 7 leads (lead length 12/11 mm); exposed die pad MMRF1012NR1 10-450 MHz, 10 W, 50 V Broadband RF Power MOSFET - Data Sheet 基于GPT,为外贸企业打造触手可及的团队私有知识库 智能运维进入6.0时代,CloudwiseGPT运维大语言模型强势来袭! 逛开发者集市啦,ShardingSphere 在亚马逊云科技中国峰会等你! ARCHIVED - MRF1513NT1 520 MHz, 3 W, 12.5 V, Lateral N-Channel Broadband RF Power MOSFET 下单稳定性治理 | 得物技术 MIFARE® PlusTM; Migrate classic contactless smart card systems to the next securi... ARCHIVED - MMRF1315NR1 500-1000 MHz, 60 W CW, 28 V Broadband RF Power LDMOS Transistor - Data Sheet 98ARE10741D, 2031-01, 2031, Thermally Enhanced, Quad Flat Non-Leaded Package (QFN) 56 Terminal, 0... plastic thermal enhanced low profile quad flat package; 100 leads; exposed die pad 联通 Flink 实时计算平台化运维实践 Gaining Efficiencies and Reducing Cost in a Competitive Environment Running NXP® IEEE™ 802.15.4 Boards on MAC OS X Based Computers 程序员必读 | 《业务架构解构与实践》 首个国人主导的开源数据集成工具!揭秘 Apache 顶级项目 SeaTunnel 背后的故事 Using Asymmetric DSP Application Projects with CodeWarrior v10.1.8 or Later 云原生周刊:K8s v1.28 中的结构化身份验证配置 MRF9060LR1, MRF9060LSR1 945 MHz, 60 W, 26 V Lateral N-Channel Broadband RF Power MOSFETs - Archived 连续两年!PingCAP入选Gartner云数据库“客户之声”,获“卓越表现者”最高分 MULTI-APPLICATION HOSTING AND VIRTUALIZATION ON S32 REAL-TIME PROCESSORS FOR EFFECTIVE MULTI-ECU ... Buck/boost HS-CAN/dual LIN system basis chip plastic thermal enhanced thin shrink small outline package; 56 leads; body width 6.1 mm; exposed ... SeaTunnel毕业!首个国人主导的数据集成项目成为Apache顶级项目 MRF18060ALR3 1805-1880 MHz, 60 W, 26 V Lateral N-Channel RF Power MOSFET - Archived NXP kündigt Produktion der 2. Generation seiner 77-GHz-RFCMOS-Radar-Transceiver für ADAS und auto... 聚焦企业实践一线与个体职业成长|2023开放原子全球开源峰会OSPO分论坛成功举办 云原生周刊:Dapr 完成模糊测试审计 | 2023.7.10 【直播预告】Langchain: 大语言模型的新篇章 MC68HC05K3 HCMOS Microcontroller Unit TECHNICAL DATA - Data Sheet 2023开放原子全球开源峰会展区“云游图鉴”,带你畅游开源世界! MRF6S9125NR1, MRF6S9125NBR1 865-960 MHz, 27 W Avg., 28 V Single N-CDMA, GSM EDGE Lateral N-Channe... CVE-2023-37582:Apache RocketMQ 远程代码执行漏洞通告 TWR -MCF5441X Linux® - Web Server using Linux OS Lab Tutorial Load Position-Independent Code (PIC) on a Kinetis Platform Using the IAR EWARM Compiler 活动预告|6月15 日 Apache Paimon Meetup,深入解读 Apache Paimon 0.4.0 ! Converting Projects to CodeWarrior® ColdFire® v7.0 【快应用】多语言适配案例 基于硬件FOC伺服电机控制芯片TMC4671 推荐一款文库下载工具 Flink 遇见 Apache Celeborn:统一的数据 Shuffle 服务 新增进程管理、SSH会话管理功能,1Panel开源面板v1.4.0发布 MRF374A 470-860 MHz, 130 W, 32 V Lateral N-Channel Broadband RF Power MOSFET - Archived 私有化的即时通讯软件能给企业带来什么好处? 3-phase BLDC Motor Control with Sensorless Back-EMF ADC Zero Crossing Detection using DSP 56F80x 5 小时玩转阿里云 Flink 实时湖仓,速速报名! MRF9060LSR1 945 MHz, 60 W, 26 V Lateral N-Channel Broadband RF Power MOSFET 营销安全与区块链安全榜单发布,顶象荣膺冠亚军