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

程序员之电工基础-初尝线扫相机

一、背景

        兴趣爱好来了,决定研发一个产品。涉及到电工和机械等知识,所以记录一下相关的基础知识。本期主题是初尝线扫相机,虽然又回到了编程,但是对于我来说,硬件集成的经验不足,缺乏相机、镜头的专业知识。但是与AI的经验配合,还是勉强啃下了这块骨头。

二、材料与接线

(一)材料清单

序号名称型号备注
1海康威视CL系列4K线扫线阵工业相机MV-CL042-91GM
2海康威视配套镜头MVL-AF2045M-M42
312 芯航插电源线自带
4网线不懂是啥标准,能用就行,先不学自带
5开关电源输出24V,10A上次实验我用到的,继续使用

(二)接线说明

        1.电源线

        接之前,确认了电压是匹配的,这一点很关键。12芯一头接相机,另一头接开关电源。只是注意说明颜色,黑色、灰色都写的是写的是接GND,并线接,对应我的开关电源的COM接头。紫色、红色写的是DC power,并线接,对应我的开关电影的+V接头。紫色不好辨识啊,差点搞的我认为自己是弱智了。心中想象🍆的颜色,而且是深色🍆就行。

        2.网线

        很多年前,我们2个电脑网线直连时,我记得那种网线和一般上网用的网线不一样?反正能用就好了,暂时不去深究。不影响核心目标的学习,可以暂缓。

        3.镜头

        本次是初次实验,先做最小测试,根本不用上镜头。

三、测试过程

(一)官方软件MVS测试连接正确性

        海康机器人-机器视觉-下载中心,AI第一次找下载,点击过去是404,第二次才找对界面,但是该界面也多次崩溃。不得不吐槽一下海康,我目前工作中一件事情,也整好跟海康打交道,在技术文档、二次开发服务方面,海康还有很大的改进空间。

        安装软件后,运行起来,在首页的左侧菜单栏中,可以看到连接好的这台相机,双击这一行,中间就会显示画面。中间上面有几个小按钮,类似播放的按钮,点击就可以实时采集了。但是,线扫相机进光有限(一条缝嘛),所以屏幕看起来基本都是黑色的,我把手机电筒打开,对着线扫相机的那条缝隙!唉,对了,白了,有光的感觉!这就说明我们接线基本没有啥问题了。同步又要增加300多的经费了,买了补光灯,还等路上。

(二)官方软件MVS自带java代码测试

        我刚开始跳过了这一步,直接AI上代码,遇到了运行环境配置问题,才回头走这一步。建议这样走,不然挫败感太强烈了。

        官方的示例代码存在“MVS\Development\Samples\Java”。我先选择里面的“GetImage”,里面有“compile.bat”和“run.bat”。先编译,再运行的。在上一步连接正常的情况下,运行的时候,会提示发现相机列表,其中只有1个,要求选择编号,输入编号,即可运行。

        我查看了bat文件,没有太多的配置,代码来看,是依赖了MVS\Development\Samples\Java\Library\MvCameraControlWrapper.jar,反编译jar,查看MvCameraControl.class背后依赖的是C:\Program Files (x86)\Common Files\MVS\Runtime\Win64_x64\\Runtime\\Win32_i86\\MvCameraControlWrapper.dll。而这个dll还依赖了同文件夹其他的dll文件。

        都运行起来了,为什么还要写上面一段呢?理清楚依赖关系干什么?因为涉及Java Native Interface(Java 本地接口,简称 JNI),对于我们后续自己写代码开发时,要搞清楚,否则容易出现找不到dll等情况。

(三)java代码抓取及存储画面

        参看MVS\Development\Samples\Java目录下面的ImageSave示例,导入到项目中,简单修改我获取一帧的代码。我的实验电脑没有在身边,代码就不贴了。简单的。

四、实验小结

        1.线扫相机不如一般相机好测试,因为图像在没有补光灯的情况下,可能看不到图像,难以区别是正常还是异常。

        2.JNI容易出现位置问题,特别是在自己的开发工具中开发时要注意。而且直接依赖的dll文件还有间接依赖的dll文件。

        3.线扫相机接口拿到的图片并不是1条线,而是组装好的完整图片,即便只拍了1帧,拿到的还是1个完整的图片。

        4.海康的文件中规中矩,但没有从二次开发者的角度来编写文档,可读性不强。

http://www.xdnf.cn/news/19701.html

相关文章:

  • 百度发布Comate AI IDE,我要把Cursor卸载了!
  • AI生成PPT工具排名:2025年高效办公新选择
  • 【项目】分布式Json-RPC框架 - 应用层实现
  • Docker 安装 RAGFlow保姆教程
  • 【大前端】React 使用 Redux 实现组件通信的 Demo 示例
  • Vue 评论组件设计 V1.0
  • JVM 的 C1/C2 编译器
  • AI在金融、医疗、教育、制造业等领域的落地案例(含代码、流程图、Prompt示例与图表)
  • Archlinux KDE 下 Fcitx5 输入法的配置与美化
  • 第二十章 ESP32S3 IIC_EEPROM 实验
  • 【计算机网络】TCP状态转移
  • 开发板直连电脑的搭建网络环境(以正点原子阿尔法imx6ull开发板为讲解)
  • Flutter代码生成:告别重复劳动,效率飙升
  • 《我是如何用C语言写工控系统的漏洞和Bug》连载(1)内容大纲
  • FART 自动化脱壳框架优化实战:Bug 修复与代码改进记录
  • 充电枪结构设计-经验总结
  • 计算机网络:概述层---TCP/IP参考模型
  • shell编程从0基础--进阶 1
  • Day20_【机器学习—逻辑回归 (1)—原理】
  • 电子病历空缺句的语言学特征描述与自动分类探析(以GPT-5为例)(上)
  • 找Jenkins代替工具,可以体验下这款国产开源CICD工具
  • Web 集群高可用全方案:Keepalived+LVS (DR) 负载均衡 + Apache 服务 + NFS 共享存储搭建指南
  • 【C++】深入浅出:string类模拟实现全解析
  • 碰一下可打开小程序,在web系统中如何嵌入将小程序写入NFC
  • 企业文档安全守护者全面测评:7款加密软件深度解析,让商业机密固若金汤
  • Parasoft C/C++test案例:基于CERT/CWE的代码合规自动化
  • 力扣hot100:螺旋矩阵(边界压缩,方向模拟)(54)
  • Canaan 阿瓦隆 A1246I 81T矿机评测:性能、功耗与能效全面分析
  • 高效对象属性复制工具
  • 2025 年行政岗转型突破:解锁技能提升新方向