From 9b2ad9bafb0739f8ba1e76107011fada5e5883c3 Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期五, 10 四月 2026 16:23:08 +0800
Subject: [PATCH] 修复LB3D相机参数设置问题以及新增兰宝3D相机参数存储在本地以及初始化给相机参数。
---
LB_SmartVisionCameraDevice/PHM6000/PHM6000Sensor.cs | 302 --------------------------------------------------
1 files changed, 0 insertions(+), 302 deletions(-)
diff --git a/LB_SmartVisionCameraDevice/PHM6000/PHM6000Sensor.cs b/LB_SmartVisionCameraDevice/PHM6000/PHM6000Sensor.cs
index edabd39..38d74bd 100644
--- a/LB_SmartVisionCameraDevice/PHM6000/PHM6000Sensor.cs
+++ b/LB_SmartVisionCameraDevice/PHM6000/PHM6000Sensor.cs
@@ -692,25 +692,9 @@
var config = GetConfig();
PARAM_BAR pARAM_BAR = new PARAM_BAR()
{
- Height = config.BarHeight,
- Width = config.BarWidth,
- HoleCount = config.BarHoleCount,
- HoleDiameter = config.BarHoleDiameter,
- HoleDistance = config.BarHoleDistance,
- DOF = config.BarDOF,
};
SENSOR_POSITION stPosition = new SENSOR_POSITION
{
- IsReverse = config.IsReverse,
- IsOpposite = config.IsOpposite,
- fStdDistance = config.fStdDistance,
- fXCenter = config.fXCenter,
- x = config.x,
- y = config.y,
- z = config.z,
- xAngle = config.xAngle,
- yAngle = config.yAngle,
- zAngle = config.zAngle
};
SysCalibration.SetSensorPosition(CaliEntry, Index, stPosition);
var roi = GetROICaliThkiness(roiTxt, config);
@@ -728,25 +712,9 @@
var config = GetConfig();
PARAM_BAR param_bar = new PARAM_BAR()
{
- Height = config.BarHeight,
- Width = config.BarWidth,
- HoleCount = config.BarHoleCount,
- HoleDiameter = config.BarHoleDiameter,
- HoleDistance = config.BarHoleDistance,
- DOF = config.BarDOF,
};
SENSOR_POSITION stPosition = new SENSOR_POSITION
{
- IsReverse = config.IsReverse,
- IsOpposite = config.IsOpposite,
- fStdDistance = config.fStdDistance,
- fXCenter = config.fXCenter,
- x = config.x,
- y = config.y,
- z = config.z,
- xAngle = config.xAngle,
- yAngle = config.yAngle,
- zAngle = config.zAngle
};
SysCalibration.SetSensorPosition(CaliEntry, Index, stPosition);
var roi = GetROICaliThkiness(roiTxt, config);
@@ -767,16 +735,6 @@
var config = GetConfig();
SENSOR_POSITION sENSOR_POSITION = new SENSOR_POSITION
{
- IsReverse = config.IsReverse,
- IsOpposite = config.IsOpposite,
- fStdDistance = config.fStdDistance,
- fXCenter = config.fXCenter,
- x = config.x,
- y = config.y,
- z = config.z,
- xAngle = config.xAngle,
- yAngle = config.yAngle,
- zAngle = config.zAngle
};
SysCalibration.SetSensorPosition(CaliEntry, Index, sENSOR_POSITION);//璁剧疆浼犳劅鍣ㄤ綅缃�
SysCalibration.SetRate(CaliEntry, Index, config.XAxisResolution / 1000, config.YResolution / 1000);
@@ -823,272 +781,12 @@
});
return r;
}
-
- public async Task<float[,]> MeasureOutLine鈥婽hickness鈥�()
- {
- var result = await Task.Run(() =>
- {
- var config = GetConfig();
- SetTargetParam(config);//璁剧疆鐩爣娴嬮噺鍙傛暟
- float[,] datas = new float[config.nPartitionX, config.nPartitionY];
- data = new float[config.nPartitionX * config.nPartitionY];
- int number = 0;
- for (int i = 0; i < config.nPartitionX; i++)
- {
- for (int j = 0; j < config.nPartitionY; j++)
- {
- number++;
- float measuredValue = SysCalibration.MeasureRoiHigh(CaliEntry, Index, number);
- // 淇濈暀3浣嶅皬鏁�
- datas[i, j] = (float)Math.Round(measuredValue, 3);
- }
- }
-
- //lBCMap = SysCalibration.GetDepthMap(CaliEntry, Index, 4);
- return datas;
- });
- return result;
- }
-
-
-
-
- //浜岀淮鍥炬爣瀹�
- public async Task StartLiaghtAndDeepCali(CaliModel caliModel)
- {
- //LBLineDataZA lBLineDataZA = new LBLineDataZA();
-
- SENSOR_POSITION sENSOR_POSITION = new SENSOR_POSITION
- {
- IsReverse = caliModel.IsReverse,
- IsOpposite = caliModel.IsOpposite,
- fStdDistance = caliModel.fStdDistance,
- fXCenter = caliModel.fXCenter,
- x = caliModel.x,
- y = caliModel.y,
- z = caliModel.z,
- xAngle = caliModel.xAngle,
- yAngle = caliModel.yAngle,
- zAngle = caliModel.zAngle,
- };
- var config = GetConfig();
- PARAM_BOARD pARAM_BOARD = new PARAM_BOARD()
- {
- //Height = config.Height,
- //Width = config.Width,
- //HoleDiameter = config.HoleDiameter,
- //HoleDistance = config.HoleDistance,
- //LocationHoleX1 = config.LocationHoleX1,
- //LocationHoleX2 = config.LocationHoleX2,
- //LocationHoleY1 = config.LocationHoleY1,
- //LocationHoleY2 = config.LocationHoleY2,
- };
-
-
-
- SysCalibration.SetSensorPosition(CaliEntry, Index, sENSOR_POSITION);//璁剧疆浼犳劅鍣ㄤ綅缃�
- var roi = caliModel.Plane.Split(',');
-
- var roi1 = GetROI(caliModel.Plane, config);
- var roi2 = GetROI(caliModel.Hole1, config);
- var roi3 = GetROI(caliModel.Hole2, config);
- var roi4 = GetROI(caliModel.Hole3, config);
-
- SysCalibration.SetRate(CaliEntry, Index, config.XAxisResolution / 1000, config.YResolution / 1000);
- SysCalibration.SetFlatROI(CaliEntry, Index, roi1, true);
- SysCalibration.SetHoleROI(CaliEntry, Index, 0, roi2, true);
- SysCalibration.SetHoleROI(CaliEntry, Index, 1, roi3, true);
- SysCalibration.SetHoleROI(CaliEntry, Index, 2, roi4, true);
- SysCalibration.SetBoardParameter(CaliEntry, pARAM_BOARD);
- SysCalibration.ClearData(CaliEntry, Index);//娓呴櫎浠ュ墠鏁版嵁
- await Task.Run(() =>
- {
- //淇敼姝ゆ浠g爜
- //foreach (var item in GetLineDatas())
- unsafe
- {
- IntPtr pdata = IntPtr.Zero;
-
- //if (sline + eline != 0 && eline > sline)
- //{
- // for (ulong i = sline; i < eline; i++)
- // {
- // bool useEncoder = false;
- // if (config.LineScanTriggerSource == EnumLineScanTriggerSource.缂栫爜鍣�) useEncoder = true;
- // //浣跨敤浜嗗紩鐢紝浠�涔堟椂鍊欏畬鎴愪娇鐢紵濡傛灉闀挎椂闂达紝浠g爜浼氭湁鍐呭瓨椋庨櫓
- // pdata = GetLineDataByIndex(Entry, i);
- // if (pdata == IntPtr.Zero)
- // break;
- // SysCalibration.AddLineDataArray(CaliEntry, Index, pdata, useEncoder, 1);//鏈�鍚庝釜鍙傛暟鏄粈涔堟剰鎬�
- // }
- //}
- //else
- {
- ulong nindex = 0;
-
- while ((pdata = PHM6000Profiler.GetLineDataByIndex(Entry, nindex)) != IntPtr.Zero)
- {
- bool useEncoder = false;
- if (config.LineScanTriggerSource == EnumLineScanTriggerSource.缂栫爜鍣�) useEncoder = true;
- //浣跨敤浜嗗紩鐢紝浠�涔堟椂鍊欏畬鎴愪娇鐢紵濡傛灉闀挎椂闂达紝浠g爜浼氭湁鍐呭瓨椋庨櫓
- SysCalibration.AddLineDataArray(CaliEntry, Index, pdata, useEncoder, 1);//鏈�鍚庝釜鍙傛暟鏄粈涔堟剰鎬�
- nindex++;
- }
- }
- }
- SysCalibration.AlignmentMovingFlat(CaliEntry, Index);//涓嬫鎵撳紑绋嬪簭鏃跺彲鑳戒細搴忓彿閿欒
- //SysCalibration.SystemCalibration(caliEntry);//error娌℃湁鐪熷疄鐨勫瓟锛屽氨浼氬崱杩涚▼
- });
- }
-
-
- //娴嬮噺鍘氬害
- public async Task<float> MeasureDistance()
- {
-
- var config = GetConfig();
- SENSOR_POSITION sENSOR_POSITION = new SENSOR_POSITION
- {
- //IsReverse = CaliModel.IsReverse,
- //IsOpposite = CaliModel.IsOpposite,
- //fStdDistance = CaliModel.fStdDistance,
- //fXCenter = CaliModel.fXCenter,
- //x = CaliModel.x,
- //y = CaliModel.y,
- //z = CaliModel.z,
- //xAngle = CaliModel.xAngle,
- //yAngle = CaliModel.yAngle,
- //zAngle = CaliModel.zAngle,
- };
- SysCalibration.SetSensorPosition(CaliEntry, Index, sENSOR_POSITION);//璁剧疆浼犳劅鍣ㄤ綅缃�
- SysCalibration.SetRate(CaliEntry, Index, config.XAxisResolution / 1000, config.YResolution / 1000);
- SysCalibration.ClearData(CaliEntry, Index);//娓呴櫎浠ュ墠鏁版嵁
- var r = await Task.Run<float>(() =>
- {
- //杈撳叆鏂版暟鎹�
- unsafe
- {
- IntPtr pdata = IntPtr.Zero;
-
- if (sline + eline != 0 && eline > sline)
- {
- for (ulong i = sline; i < eline; i++)
- {
- bool useEncoder = false;
- if (config.LineScanTriggerSource == EnumLineScanTriggerSource.缂栫爜鍣�) useEncoder = true;
- //浣跨敤浜嗗紩鐢紝浠�涔堟椂鍊欏畬鎴愪娇鐢紵濡傛灉闀挎椂闂达紝浠g爜浼氭湁鍐呭瓨椋庨櫓
- pdata = PHM6000Profiler.GetLineDataByIndex(Entry, i);
- if (pdata == IntPtr.Zero)
- break;
- SysCalibration.AddLineDataArray(CaliEntry, Index, pdata, useEncoder, 1);//鏈�鍚庝釜鍙傛暟鏄粈涔堟剰鎬�
- }
- }
- else
- {
- ulong nindex = 0;
-
- while ((pdata = PHM6000Profiler.GetLineDataByIndex(Entry, nindex)) != IntPtr.Zero)
- {
- bool useEncoder = false;
- if (config.LineScanTriggerSource == EnumLineScanTriggerSource.缂栫爜鍣�) useEncoder = true;
- //浣跨敤浜嗗紩鐢紝浠�涔堟椂鍊欏畬鎴愪娇鐢紵濡傛灉闀挎椂闂达紝浠g爜浼氭湁鍐呭瓨椋庨櫓
- SysCalibration.AddLineDataArray(CaliEntry, Index, pdata, useEncoder, 1);//鏈�鍚庝釜鍙傛暟鏄粈涔堟剰鎬�
- nindex++;
- }
- }
- }
- SetTargetParam(config);//璁剧疆鐩爣娴嬮噺鍙傛暟
- //var result = SysCalibration.MeasureDistance(CaliEntry);
- float measuredValue = SysCalibration.MeasureTargetHigh(CaliEntry, Index);
- var result = (float)Math.Round(measuredValue, 3);
- return result;
- });
- return r;
- }
-
public static ulong sline = 0;
public static ulong eline = 0;
public static IntPtr lBCMap = IntPtr.Zero;
public static float[] data = null;
-
- //娴嬮噺鍑瑰嚫
- public async Task<float[,]> Measure鈥婾neven鈥�()
- {
-
- var result = await Task.Run(() =>
- {
- var config = GetConfig();
- //SENSOR_POSITION sENSOR_POSITION = new SENSOR_POSITION
- //{
- // IsReverse = CaliModel.IsReverse,
- // IsOpposite = CaliModel.IsOpposite,
- // fStdDistance = CaliModel.fStdDistance,
- // fXCenter = CaliModel.fXCenter,
- // x = CaliModel.x,
- // y = CaliModel.y,
- // z = CaliModel.z,
- // xAngle = CaliModel.xAngle,
- // yAngle = CaliModel.yAngle,
- // zAngle = CaliModel.zAngle,
- //};
- //SysCalibration.SetSensorPosition(CaliEntry, Index, sENSOR_POSITION);//璁剧疆浼犳劅鍣ㄤ綅缃�
- //SysCalibration.SetRate(CaliEntry, Index, config.XAxisResolution / 1000, config.YResolution / 1000);
- //SysCalibration.ClearData(CaliEntry, Index);//娓呴櫎浠ュ墠鏁版嵁
-
- ////杈撳叆鏂版暟鎹�
- //unsafe
- //{
- // IntPtr pdata = IntPtr.Zero;
-
- // if (sline + eline != 0 && eline > sline)
- // {
- // for (ulong i = sline; i < eline; i++)
- // {
- // bool useEncoder = false;
- // if (config.LineScanTriggerSource == EnumLineScanTriggerSource.缂栫爜鍣�) useEncoder = true;
- // //浣跨敤浜嗗紩鐢紝浠�涔堟椂鍊欏畬鎴愪娇鐢紵濡傛灉闀挎椂闂达紝浠g爜浼氭湁鍐呭瓨椋庨櫓
- // pdata = GetLineDataByIndex(Entry, i);
- // if (pdata == IntPtr.Zero)
- // break;
- // SysCalibration.AddLineDataArray(CaliEntry, Index, pdata, useEncoder, 1);//鏈�鍚庝釜鍙傛暟鏄粈涔堟剰鎬�
- // }
- // }
- // else
- // {
- // ulong nindex = 0;
-
- // while ((pdata = GetLineDataByIndex(Entry, nindex)) != IntPtr.Zero)
- // {
- // bool useEncoder = false;
- // if (config.LineScanTriggerSource == EnumLineScanTriggerSource.缂栫爜鍣�) useEncoder = true;
- // //浣跨敤浜嗗紩鐢紝浠�涔堟椂鍊欏畬鎴愪娇鐢紵濡傛灉闀挎椂闂达紝浠g爜浼氭湁鍐呭瓨椋庨櫓
- // SysCalibration.AddLineDataArray(CaliEntry, Index, pdata, useEncoder, 1);//鏈�鍚庝釜鍙傛暟鏄粈涔堟剰鎬�
- // nindex++;
- // }
- // }
- //}
- SetTargetParam(config);//璁剧疆鐩爣娴嬮噺鍙傛暟
- float[,] datas = new float[config.nPartitionX, config.nPartitionY];
- data = new float[config.nPartitionX * config.nPartitionY];
- int number = 0;
- for (int i = 0; i < config.nPartitionX; i++)
- {
- for (int j = 0; j < config.nPartitionY; j++)
- {
- number++;
- float measuredValue = SysCalibration.MeasureRoiHigh(CaliEntry, Index, number);
- // 淇濈暀3浣嶅皬鏁�
- datas[i, j] = (float)Math.Round(measuredValue, 3);
- }
- }
-
- //lBCMap = SysCalibration.GetDepthMap(CaliEntry, Index, 4);
- return datas;
- });
- return result;
- }
LB_ROI GetROI(string s, PHM6000SensorConfig config)
--
Gitblit v1.9.3