فهرست منبع

修改-屏幕识别不采用原图识别

ZIM 1 سال پیش
والد
کامیت
d9d5570d88

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

@@ -691,7 +691,7 @@ namespace o0.Project
                 var scale = 1.0f / maxWhite;        // 放大对比度
 
                 var differPixel = new UnityEngine.Color[Size.x * Size.y];
-                var whitePixel = new UnityEngine.Color[Size.x * Size.y];
+                //var whitePixel = new UnityEngine.Color[Size.x * Size.y];
                 Parallel.For(0, Size.x, x =>
                 {
                     for (int y = 0; y < Size.y; y++)
@@ -699,11 +699,11 @@ namespace o0.Project
                         var i = y * Size.x + x;
                         var d = ScreenWhiteTexture[i] - ScreenBlackTexture[i];
                         differPixel[i] = new UnityEngine.Color(d.x, d.y, d.z) * scale;
-                        whitePixel[i] = new UnityEngine.Color(ScreenWhiteTexture[i].x, ScreenWhiteTexture[i].y, ScreenWhiteTexture[i].z) * scale;
+                        //whitePixel[i] = new UnityEngine.Color(ScreenWhiteTexture[i].x, ScreenWhiteTexture[i].y, ScreenWhiteTexture[i].z) * scale;
                     }
                 });
-                PixelsMultipleBatches.Add(differPixel);
-                PixelsMultipleBatches.Add(whitePixel);
+                PixelsMultipleBatches.Add(differPixel);     // 色差图
+                //PixelsMultipleBatches.Add(whitePixel);    // 原图
             }
 
             int conSize = (int)Math.Ceiling(0.007f * Size.y) * 2 + 1;

+ 3 - 2
Assets/InfraredProject/WebCamera/Script/ZIM/ScreenLocate.cs

@@ -729,12 +729,13 @@ public partial class ScreenLocate : MonoBehaviour
     private bool RefreshCameraSize()
     {
         var sizeNew = new o0.Geometry2D.Vector<int>((int)getUVCCameraInfoSize.x, (int)getUVCCameraInfoSize.y);
-        if (sizeNew != CameraSize) 
+        var sizeNewFloat = getUVCCameraInfoSize.o0Vector();
+        if (sizeNew != CameraSize || (screenIdentification.Screen != null && sizeNewFloat != screenIdentification.Screen.QuadInCamera.CameraSize)) 
         {
             Debug.Log($"<color=aqua>[ScreenLocate] 分辨率变化,刷新分辨率(from {CameraSize.x}×{CameraSize.y} to {sizeNew.x}×{sizeNew.y}), 是否有屏幕数据: {screenIdentification.Screen.QuadInCamera != null}, 是否有手动数据: {screenIdentification.QuadManual != null}</color>");
             // 同步相机分辨率
             CameraSize = sizeNew;
-            var sizeNewFloat = getUVCCameraInfoSize.o0Vector();
+            
             screenIdentification.Screen.RefreshCameraSize(sizeNewFloat);
             screenIdentification.QuadAuto?.ReSize(sizeNewFloat, ScreenMap.ViewAspectRatioSetting);
             screenIdentification.QuadManual?.ReSize(sizeNewFloat, ScreenMap.ViewAspectRatioSetting);