예제 #1
0
파일: Zed.cs 프로젝트: MiaoDX/ZED_EmguCV
        public Zed(InitParameters parameters = null, string svoPath = null)
        {
            camera = ZEDCamera.GetInstance();

            mats = new List <ZEDMat>();

            if (parameters == null)
            {
                parameters                        = new InitParameters();
                parameters.resolution             = RESOLUTION.HD720;
                parameters.depthMode              = DEPTH_MODE.QUALITY;
                parameters.depthStabilization     = true;
                parameters.enableRightSideMeasure = true; // isStereoRig;

                parameters.coordinateUnit       = UNIT.MILLIMETER;
                parameters.depthMinimumDistance = 200f;
                //parameters.depthMinimumDistance = 0.2f;
            }

            if (svoPath != null)
            {
                parameters.pathSVO = svoPath;
            }

            this.initParameters = parameters;

            // runtime parameters
            runtimeParameters = new RuntimeParameters()
            {
                sensingMode = SENSING_MODE.FILL,
                enableDepth = true
            };

            // create the camera
            camera.CreateCamera(true);
        }
예제 #2
0
 private void Start()
 {
     manager        = FindObjectOfType(typeof(ZEDManager)) as ZEDManager;
     spatialMapping = new ZEDSpatialMapping(transform, ZEDCamera.GetInstance(), manager);
 }
예제 #3
0
    public override void OnInspectorGUI()
    {
        var cameraIsReady = ZEDCamera.GetInstance().IsCameraReady;

        displayText = ZEDSpatialMapping.display ? "Hide Mesh" : "Display Mesh";
        serializedObject.Update();
        EditorGUILayout.BeginHorizontal();

        GUILayout.Label("Mesh Parameters", EditorStyles.boldLabel);
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        EditorGUILayout.EndHorizontal();

        var newResolution =
            (ZEDSpatialMapping.RESOLUTION)EditorGUILayout.EnumPopup("Resolution", spatialMapping.resolution_preset);

        if (newResolution != spatialMapping.resolution_preset)
        {
            resolution.enumValueIndex = (int)newResolution;
            serializedObject.ApplyModifiedProperties();
        }

        var newRange = (ZEDSpatialMapping.RANGE)EditorGUILayout.EnumPopup("Range", spatialMapping.range_preset);

        if (newRange != spatialMapping.range_preset)
        {
            range.enumValueIndex = (int)newRange;
            serializedObject.ApplyModifiedProperties();
        }

        EditorGUILayout.BeginHorizontal();
        filterParameters.enumValueIndex =
            (int)(FILTER)EditorGUILayout.EnumPopup("Mesh Filtering", (FILTER)filterParameters.enumValueIndex);
        isFilteringEnable.boolValue = true;


        EditorGUILayout.EndHorizontal();

        GUI.enabled = !spatialMapping.IsRunning;

        isTextured.boolValue = EditorGUILayout.Toggle("Texturing", isTextured.boolValue);

        GUI.enabled = cameraIsReady;

        EditorGUILayout.BeginHorizontal();
        if (!spatialMapping.IsRunning)
        {
            if (GUILayout.Button("Start Spatial Mapping"))
            {
                if (!ZEDSpatialMapping.display)
                {
                    spatialMapping.SwitchDisplayMeshState(true);
                }
                spatialMapping.StartSpatialMapping();
            }
        }
        else
        {
            if (spatialMapping.IsRunning && !spatialMapping.IsUpdateThreadRunning ||
                spatialMapping.IsRunning && spatialMapping.IsTexturingRunning)

            {
                GUILayout.FlexibleSpace();
                GUILayout.Label("Spatial mapping is finishing");
                Repaint();
                GUILayout.FlexibleSpace();
            }
            else
            {
                if (GUILayout.Button("Stop Spatial Mapping"))
                {
                    spatialMapping.StopSpatialMapping();
                }
            }
        }

        EditorGUILayout.EndHorizontal();

        GUI.enabled = cameraIsReady;
        if (GUILayout.Button(displayText))
        {
            spatialMapping.SwitchDisplayMeshState(!ZEDSpatialMapping.display);
        }
        GUI.enabled = true;
        GUILayout.Label("Mesh Storage", EditorStyles.boldLabel);
        saveWhenOver.boolValue = EditorGUILayout.Toggle("Save Mesh (when stop)", saveWhenOver.boolValue);


        EditorGUILayout.BeginHorizontal();

        meshPath.stringValue = EditorGUILayout.TextField("Mesh Path", meshPath.stringValue);

        if (GUILayout.Button("...", optionsButtonBrowse))
        {
            meshPath.stringValue = EditorUtility.OpenFilePanel("Mesh file", "", "ply,obj,bin");
            serializedObject.ApplyModifiedProperties();
        }

        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        //GUI.enabled = cameraIsReady;
        GUILayout.FlexibleSpace();

        GUI.enabled = File.Exists(meshPath.stringValue) && cameraIsReady;
        if (GUILayout.Button("Load"))
        {
            spatialMapping.LoadMesh(meshPath.stringValue);
        }

        EditorGUILayout.EndHorizontal();

        serializedObject.ApplyModifiedProperties();

        if (!cameraIsReady)
        {
            Repaint();
        }
    }