ZIM hai 11 meses
pai
achega
4775409d86

+ 6 - 4
Assets/InfraredProject/WebCamera/Script/ZIM/InfraredLocate/ScreenIdentification.cs

@@ -741,7 +741,7 @@ namespace o0.Project
 
 
             // LSD计算得到的矩阵尺寸较小(因为卷积),这里必须进行位移
             // LSD计算得到的矩阵尺寸较小(因为卷积),这里必须进行位移
             // 新增:根据阈值筛去梯度太低的线段
             // 新增:根据阈值筛去梯度太低的线段
-            float minGradient = 0.09f;
+            float minGradient = 0.08f;
             var offset = new Vector((conSize - 1) / 2, (conSize - 1) / 2);
             var offset = new Vector((conSize - 1) / 2, (conSize - 1) / 2);
             var tempList = new List<LineIdentified>();
             var tempList = new List<LineIdentified>();
             for (int i = 0; i < allLines.Count; i++)
             for (int i = 0; i < allLines.Count; i++)
@@ -1152,19 +1152,21 @@ namespace o0.Project
                     selectedList.Add(i);
                     selectedList.Add(i);
             }
             }
 
 
-            if (selectedList.Count == 4) 
+            if (selectedList.Count == 4)
             {
             {
                 if (selected[0].ZIMGradient + selected[2].ZIMGradient > selected[1].ZIMGradient + selected[3].ZIMGradient)
                 if (selected[0].ZIMGradient + selected[2].ZIMGradient > selected[1].ZIMGradient + selected[3].ZIMGradient)
                     return (selected[0], selected[2]);
                     return (selected[0], selected[2]);
                 else
                 else
                     return (selected[1], selected[3]);
                     return (selected[1], selected[3]);
             }
             }
-            else if (selectedList.Count == 1)
-                return (selectedList[0], null);
             else if (selected[0] != null && selected[2] != null)
             else if (selected[0] != null && selected[2] != null)
                 return (selected[0], selected[2]);
                 return (selected[0], selected[2]);
             else if (selected[1] != null && selected[3] != null)
             else if (selected[1] != null && selected[3] != null)
                 return (selected[1], selected[3]);
                 return (selected[1], selected[3]);
+            else if (selectedList.Count == 2)
+                return selectedList[0].ZIMGradient > selectedList[1].ZIMGradient ? (selectedList[0], null) : (selectedList[1], null);
+            else if (selectedList.Count == 1)
+                return (selectedList[0], null);
             else
             else
                 return (null, null);
                 return (null, null);
         }
         }