| 
					
				 | 
			
			
				@@ -1004,13 +1004,13 @@ namespace o0.Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return Math.Abs(lg.Mean()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 沿直线计算综合梯度(梯度乘以长度系数,再乘以距离系数), distanceRatio是实际距离除以最大距离 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 沿直线计算综合梯度(梯度乘以长度系数,再乘以距离系数), distanceRatio是实际距离除以距离阈值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             float estimateGradient(LineIdentified line, float distanceRatio) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var gM = ScreenGrad(line); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 float e = (float)Math.Sqrt(Math.Ceiling(line.Line.Length / minLength));       // 长度系数,筛选时梯度更大、长度更长的线段更优 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                float d = (1.3f - distanceRatio) / 0.3f;             // 距离系数,距离越近,系数越大 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                line.ZIMGradient = e * d * gM;      // 记录一下综合梯度,新增的识别黑边功能会二次使用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                float d = (10f - distanceRatio * distanceRatio) / 10f;             // 距离系数,距离越近,系数越大 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                line.ZIMGradient = e * gM + d;      // 记录一下综合梯度,新增的识别黑边功能会二次使用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return line.ZIMGradient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 根据线段梯度的角度,判断是不是屏幕的边,index代表是哪条边(顺序是: 下、右、上、左) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1051,6 +1051,7 @@ namespace o0.Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Debug.Log($"[IdentifyLineLSD] 根据已有定位数据做筛选, QuadManual: {QuadManual}"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 manualLines = QuadManual.GetLines().Select((i) => new LineIdentified(0, i, 0, 0, true)).ToArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var calibration = ScreenLocate.Main.ReDoLocateCalibrationRatio * Size.y; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var distanceMeasure = 0.02f * Size.y; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var avgPointCross = manualLines.Select((i) => i.Line.LineCrossWithPoint(avgPoint)).ToArray();     // 对于平均点的corss值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var avgPointPedal = manualLines.Select((i) => o0Extension.PointPedal(i.Line, avgPoint, out _)).ToArray();     // 当前定位的垂足,下、右、上、左 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1067,7 +1068,7 @@ namespace o0.Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var middleToOldLine = o0Extension.PointPedal(manualLines[line.ScreenLineIndex].Line, (line.Line.A + line.Line.B) / 2, out bool inLineSegment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (inLineSegment) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                quadLinesSemiAuto[line.ScreenLineIndex].Add((estimateGradient(line, distanceToOld / calibration), line)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                quadLinesSemiAuto[line.ScreenLineIndex].Add((estimateGradient(line, (float)Math.Floor(distanceToOld / distanceMeasure)), line)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 possibleLines.Add(line); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1124,7 +1125,7 @@ namespace o0.Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 foreach (var (_, line) in ql) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (line != resultLines[line.ScreenLineIndex]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (line != resultLines[line.ScreenLineIndex] && line.Batch < 1) // batch0才做黑边的内部线条检测 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         var pedal = o0Extension.PointPedal(line.Line, avgPoint, out _); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         var a0 = pedal - avgPoint; 
			 |