实例】四相机测量项目源码使用海康SDK及C#+halcon实现的通俗易懂教程:连接相机、模板匹...
四相机测量项目源码海康相机SDKC#halcon写得比较通俗易懂四相机四种测量模式某工厂产线曾使用的项目。 主要功能有连接海康相机采图模板匹配圆形拟合直线拟合像素标定保存图片串口通讯网口通讯。 是学习和借鉴不错的范例。最近在整理硬盘翻出个有意思的项目——基于海康工业相机和Halcon的四相机视觉测量系统。这玩意儿当初是给某汽车配件厂做的自动化检测方案实测在产线上跑了两年没出过大毛病。今儿个咱们边撸代码边唠嗑看看这种多相机系统是怎么玩转的。四相机测量项目源码海康相机SDKC#halcon写得比较通俗易懂四相机四种测量模式某工厂产线曾使用的项目。 主要功能有连接海康相机采图模板匹配圆形拟合直线拟合像素标定保存图片串口通讯网口通讯。 是学习和借鉴不错的范例。先说说硬件架构四个海康MV-CA050-10GC相机呈十字架布局通过千兆网口连接到工控机。这里有个坑得注意——海康SDK的NETDVRSetConnectTime必须设置超时时间否则多相机同时连接时容易翻车// 海康相机初始化代码片段 NET_DVR_Init(); NET_DVR_SetConnectTime(2000, 3); // 2秒超时重试3次 NET_DVR_DEVICEINFO_V30 deviceInfo; int lUserID NET_DVR_Login_V30(192.168.1.64, 8000, admin, 123456, ref deviceInfo);模板匹配这块Halcon是真香但新手容易栽在金字塔层级参数上。看这段实际产线中用的形状匹配代码numLevels设为0让算法自动选择比手动调参靠谱得多find_shape_model(ImageReduced, ModelID, -0.2, 6.28, 0.7, 1, 0.5, least_squares, none, 0, 0.9, Row, Column, Angle, Score)测量模式切换是项目的亮点通过枚举实现四种算法自由切换。这里用策略模式封装不同测量逻辑维护时那叫一个舒服public enum MeasureMode { CircleFitting, // 环形件直径测量 LineDistance, // 连接器引脚间距 SurfaceDefect, // 表面瑕疵检测 AssemblyCheck // 组件装配完整性 } // 策略执行入口 switch(currentMode){ case MeasureMode.CircleFitting: RunCircleFitting(ref ho_Image); break; //...其他模式处理 }像素标定部分建议采用九点标定法比传统的单点标定精度更高。下面这个转换矩阵生成算法实测误差能控制在±0.03mmdouble[,] calibrationMatrix new double[3, 3]; Calibration.CalculateHomography(physicalPoints, imagePoints, ref calibrationMatrix); // 物理坐标转换 PointF transformedPoint Calibration.TransformPoint(imageX, imageY, calibrationMatrix);通讯模块同时支持RS232和TCP/IP双协议应对不同厂家的PLC设备。分享个串口数据封装的技巧——用CRC16校验能有效避免车间电磁干扰byte[] BuildCommand(byte address, float measurement){ Listbyte buffer new Listbyte(); buffer.AddRange(BitConverter.GetBytes(measurement)); byte[] crc CRC16.Calculate(buffer.ToArray()); buffer.AddRange(crc); return buffer.ToArray(); }项目源码里最值得借鉴的是异常处理机制。比如这段相机掉线重连逻辑配合Windows服务自重启功能保障产线7x24运行void CameraThread(){ while(!stopped){ try { GrabImage(); }catch(CameraException ex){ Logger.Write($相机{ID}异常: {ex.Message}); ReconnectCamera(); Thread.Sleep(5000); // 5秒冷却时间 } } }这个项目给咱们的启示是工业级视觉系统不仅要有精准算法更要像瑞士军刀一样可靠。代码已上传Github地址马赛克处理实测在VS2019Halcon13环境下可直接跑通。建议动手时重点关注多线程采图同步和测量结果置信度校验这两个模块这俩是保证检测稳定性的关键所在。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2494006.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!