海康线扫相机使用

目录

1、调试方式-竖线清晰视为对焦完成

2、线扫相机接编码器使用,接线方式为图6-14,无需下拉电阻,需要注意的是一端悬空

3、线扫相机MVS设置出图,编码器转一圈出一张图,小编这里图像高度设置为1440

4、代码设置


本次使用的线扫相机型号为,MV-CL043-A1GM-V2,MVS版本为V4.6.3

1、调试方式-竖线清晰视为对焦完成

触发选择器-帧触发开始-触发模式->关闭

触发选择器-行触发-触发模式->关闭

2、线扫相机接编码器使用,接线方式为图6-14,无需下拉电阻,需要注意的是一端悬空

3、线扫相机MVS设置出图,编码器转一圈出一张图,小编这里图像高度设置为1440

(1)触发选择器->帧触发->触发模式->关闭

(2)触发选择器->行触发->触发模式->打开->触发源选择分频器

(3)变频器控制->输入源选编码器->乘法器设置4倍

(4)编码器控制->第2步接线的时候有一端悬空的所以这里编码器源B设置为N/A为空->因为编码器计数模式是忽略方向的双向计数,所以编码器计数器计数结果是720,实际接收的脉冲是360(可以接到PLC上接收脉冲数调试),360乘4倍乘法器=1440的图像高度

(5)IO控制->线路选择0->IO类型设置为单端->线路防抖设置为1000ns

按照以上方法设置后,编码器转一圈发送360个脉冲给线扫相机,线扫相机接收360*4=1440,满足图像的行高,就会出来一张图

4、代码设置

如果出现了下面这种情况,新来的帧没有完全覆盖掉上一帧的图,甚至越拉越长,需要设置帧触发开始 行触发结束,用代码设置即可解决

cpp 复制代码
MV_CC_SetEnumValue(handle, "AcquisitionLineRate", 1440); // 采集行频 图像的高度
MV_CC_SetEnumValue(handle, "TriggerSelector", 9);        // 触发选择器 行开始
MV_CC_SetEnumValue(handle, "TriggerMode", 1);            // 触发模式 打开
MV_CC_SetEnumValue(handle, "TriggerSource", 8);          // 触发源 分频器
MV_CC_SetEnumValue(handle, "PreDivider", 1);             // 预分频器
MV_CC_SetEnumValue(handle, "Multiplier", 4);             // 乘法器
MV_CC_SetEnumValue(handle, "PostDivider", 1);            // 后分频器

MV_CC_SetEnumValue(handle, "TriggerSelector", 6);        // 触发选择器 帧触发开始
MV_CC_SetEnumValue(handle, "TriggerMode", 1);            // 触发模式 打开
MV_CC_SetEnumValue(handle, "TriggerSource", 7);          // 触发源 软触发
nRet = MV_CC_StartGrabbing(handle);                      // 开始取流
相关推荐
小小龙学IT5 小时前
Boost.Interprocess 开源 C++ 进程间通信库深度解析
c++·开源
倒头就睡的小比特6 天前
算法竞赛C++常用的STL
c++·算法
weilx12346 天前
C++笔记-文件IO-<fcntl.h>
c++
Smileyqp沛沛6 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
C语言小火车6 天前
C/C++ 为什么需要编译器?
开发语言·c++
旖旎夜光6 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
吞下星星的少年·-·6 天前
C++ 萌新语法入门篇
c++·算法比赛
霍霍的袁6 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
another heaven6 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
程序猿编码6 天前
告别改源码适配模型:纯 C++ 可配置 LLM 推理引擎,全格式全结构兼容
c++·大模型·llm·推理引擎