Bladeren bron

差值图像 dll 修改测试

slambb 4 maanden geleden
bovenliggende
commit
5bc1f3cf75

BIN
Assets/AddressableAssetsData/Android/addressables_content_state.bin


+ 1 - 1
Assets/AddressableAssetsData/link.xml.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 86dde61238123ed4c9dcaffb69d904a5
+guid: a9a608cc474953a4da111684f0546339
 TextScriptImporter:
   externalObjects: {}
   userData: 

+ 83 - 2
Assets/BowArrow/InfraredCamera/InfraredDemo.cs

@@ -968,8 +968,18 @@ public class InfraredDemo : JCUnityLib.ViewBase
         {
             if (isFullscreen || ScreenLocate.Main.OutputTextures[4] == null)
             {
-                if (_cameraRender.texture == null || ScreenLocate.Main.getUVCTexture.GetNativeTexturePtr() != _cameraRender.texture.GetNativeTexturePtr())
-                    _cameraRender.texture = ScreenLocate.Main.getUVCTexture;
+
+                if (isDiffTexture)
+                {
+                    if(ScreenLocate.Main.OutputDiffTexture != null && ScreenLocate.Main.OutputDiffTexture.GetNativeTexturePtr() != _cameraRender.texture.GetNativeTexturePtr())
+                        _cameraRender.texture = ScreenLocate.Main.OutputDiffTexture;
+                }
+                else {
+                    if (_cameraRender.texture == null || ScreenLocate.Main.getUVCTexture.GetNativeTexturePtr() != _cameraRender.texture.GetNativeTexturePtr())
+                        _cameraRender.texture = ScreenLocate.Main.getUVCTexture;
+                }
+
+             
 
                 //ScreenLocate.Main.OutputTextures[4] == null 并且 摄像机缩小的情况下。显示适配线段
                 if (!isFullscreen) SetAllToggle(true);
@@ -1052,6 +1062,14 @@ public class InfraredDemo : JCUnityLib.ViewBase
         //{
         //    curIndex = 1 - index;
         //}
+        if (curIndex == 0 && isDiffTexture)
+        {
+            curIndex = 2;
+            _crosshairsInCamera[0].gameObject.SetActive(false);
+        }
+        else {
+            _crosshairsInCamera[2].gameObject.SetActive(false);
+        }
         _crosshairsInCamera[curIndex].gameObject.SetActive(true);
         _crosshairsInCamera[curIndex].anchoredPosition = pos;
 
@@ -1388,20 +1406,40 @@ public class InfraredDemo : JCUnityLib.ViewBase
     }
 
     //下面是处理对象放大缩小
+    [Header("放大红外页面显示部分,包括差值图")]
     public RectTransform cameraObj1; // 拖拽你的 CameraSize1 对象到此字段
     public Button toggleButton;      // 缩小时使用的按钮
+    public Button whiteTestButton;   // 白色背景触发时候的按钮,进入画中画
+    public Button whiteTestButtonBack;   // 退出画中画
+    public GameObject whiteTestPanel; //白色的背景
+    public Dropdown whiteTestDropdown; //白色的背景下选择渲染目标
+    public Toggle whiteTestUseDiffTextureToggle;//选择应用的差值图?
+
     private Vector2 originalSize;
     private Vector2 originalAnchoredPosition; // 使用 anchoredPosition 代替 localPosition
     private Vector2 originalAnchorMin;
     private Vector2 originalAnchorMax;
     private int originalSiblingIndex; // 保存初始的层级索引
     private bool isFullscreen = false;
+    private bool isDiffTexture = false;
 
     /// <summary>
     /// 测试效果屏幕数据初始化
     /// </summary>
     void InitFullScreen()
     {
+        whiteTestDropdown.ClearOptions();
+        List<string> options = new List<string>();
+        options.Add("红外图像");
+        options.Add("差值图像");
+        //options.Add(TextAutoLanguage2.GetTextByKey("AutoRecognition"));    // "自动识别"
+        //options.Add(TextAutoLanguage2.GetTextByKey("SemiAutoRecognition")); // "半自动识别"
+        whiteTestDropdown.AddOptions(options);
+
+        // 添加监听器来处理选择事件
+        whiteTestDropdown.onValueChanged.AddListener(OnwhiteTestDropdownValueChanged);
+
+        whiteTestUseDiffTextureToggle.onValueChanged.AddListener(OnWhiteTestUseDiffTextureToggleValueChanged);
 
         if (cameraObj1 != null)
         {
@@ -1415,6 +1453,9 @@ public class InfraredDemo : JCUnityLib.ViewBase
             // 为 cameraObj1 添加点击事件
             cameraObj1.GetComponent<Button>().onClick.AddListener(ToggleFullscreen);
 
+            whiteTestButton.onClick.AddListener(WhiteTestFullScreen);
+            whiteTestButtonBack.onClick.AddListener(WhiteTestFullScreenBack);
+
             toggleButton.transform.parent.gameObject.SetActive(false);
         }
 
@@ -1424,6 +1465,14 @@ public class InfraredDemo : JCUnityLib.ViewBase
             toggleButton.onClick.AddListener(RestoreSize);
         }
     }
+
+    void OnwhiteTestDropdownValueChanged(int index) {
+        isDiffTexture = index == 0 ? false : true;
+    }
+    void OnWhiteTestUseDiffTextureToggleValueChanged(bool isChange) {
+       // Debug.Log(isChange);
+        ScreenLocate.Main.SetUsingCameraImageDifference = isChange;
+    }
     void ToggleFullscreen()
     {
         if (cameraObj1 == null) return;
@@ -1450,6 +1499,34 @@ public class InfraredDemo : JCUnityLib.ViewBase
         }
     }
 
+    void WhiteTestFullScreen()
+    {
+        if (cameraObj1 == null) return;
+
+        if (isFullscreen)
+        {
+            // 恢复锚点和偏移量
+            cameraObj1.anchorMin = originalAnchorMin; // 使用在 Start() 中记录的初始锚点
+            cameraObj1.anchorMax = originalAnchorMax; // 使用在 Start() 中记录的初始锚点
+            cameraObj1.sizeDelta = originalSize * 0.8f;
+            cameraObj1.anchoredPosition = new Vector2(cameraObj1.sizeDelta.x/2, -cameraObj1.sizeDelta.y/2); 
+
+            //刷新一次点
+            SetLocatePointsToCameraRender(ScreenLocate.quadUnityVectorList, 1, 1);
+
+            toggleButton.transform.parent.gameObject.SetActive(false);
+            whiteTestPanel.SetActive(true);
+            whiteTestPanel.GetComponent<RectTransform>().SetSiblingIndex(cameraObj1.parent.childCount - 2); // 倒数第二层
+            isFullscreen = false;
+        }
+
+    }
+
+    void WhiteTestFullScreenBack() {
+        whiteTestPanel.SetActive(false);
+        ToggleFullscreen();
+    }
+
     void RestoreSize()
     {
         if (cameraObj1 == null || !isFullscreen) return;
@@ -1466,6 +1543,10 @@ public class InfraredDemo : JCUnityLib.ViewBase
 
         toggleButton.transform.parent.gameObject.SetActive(false);
         isFullscreen = false;
+
+        //完全退出去后,重置一下选择差值信息
+        isDiffTexture = false;
+        whiteTestDropdown.value = 0;
     }
     #endregion
 

File diff suppressed because it is too large
+ 764 - 88
Assets/BowArrow/InfraredCamera/Resources/InfraredDemo.prefab


BIN
Assets/InfraredProject/WebCamera/Image/crosshair5.png


+ 135 - 0
Assets/InfraredProject/WebCamera/Image/crosshair5.png.meta

@@ -0,0 +1,135 @@
+fileFormatVersion: 2
+guid: 5301e8e7f1c7e484ca233f82fe6a503c
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Assets/InfraredProject/WebCamera/Script/ZIM/ScreenLocate.cs

@@ -96,6 +96,17 @@ public partial class ScreenLocate : o0InfraredCameraHandler
     /// </summary>
     public Texture2D[] OutputTextures => outputTexture2D;
 
+    public Texture2D OutputDiffTexture => infraredLocate.CameraPixelsDiffTexture;
+
+    public bool SetUsingCameraImageDifference
+    {
+        set
+        {
+            Debug.Log("SetUsingCameraImageDifference:"+ value);
+            infraredLocate.SetUsingCameraImageDifference(value);
+        }
+    }
+
     public Vector2 CameraLocationOffset
     {
         get=>infraredLocate.CameraLocationOffset;

BIN
Assets/Plugins/o0InfraredLocate/o0InfraredLocate.dll


Some files were not shown because too many files changed in this diff