Esempio n. 1
0
    private void Awake()
    {
        // get all references
        Preview    = GameObject.Find("Preview").GetComponent <RawImage>();
        Response   = GameObject.Find("Response").GetComponent <Text>();
        VisionText = GameObject.Find("Vision").GetComponent <VisionText>();
        VisionQR   = GameObject.Find("Vision").GetComponent <VisionQR>();

        // start polling for vision
        VisionText.PollTime   = 3.0f;
        VisionText.OnMessage += (object source, Vision.Message message) =>
        {
            if (!message.error)
            {
                Response.text = "TEXT (" + message.language + "): " + string.Join(" ", message.lines.ToArray());
            }
            else
            {
                Response.text = "ERROR: " + message.lines.First();
            }
        };

        // start polling for QR
        VisionQR.PollTime   = 0.2f;
        VisionQR.OnMessage += (object source, Vision.Message message) => {
            if (!message.error)
            {
                Response.text = "QR: " + string.Join(" ", message.lines.ToArray());
            }
            else
            {
                Response.text = "ERROR: " + message.lines.First();
            }
        };
    }
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        // show the properties
        EditorGUILayout.PropertyField(visionKeyProperty, new GUIContent("Vision Key"));
        EditorGUILayout.PropertyField(translationKeyProperty, new GUIContent("Translation Key"));
        EditorGUILayout.PropertyField(regionProperty, new GUIContent("Region"));
        EditorGUILayout.PropertyField(translateToProperty, new GUIContent("Translate To"));
        EditorGUILayout.PropertyField(textureProperty, new GUIContent("Texture"));

        EditorGUILayout.Space();

        float width = EditorGUIUtility.currentViewWidth;

        if (GUILayout.Button("Read Text"))
        {
            VisionText VisionText = (VisionText)this.target;
            Texture2D  texture    = (Texture2D)textureProperty.objectReferenceValue;
            VisionText.Look(texture, (object source, Vision.Message message) => {
                text = string.Join("\n", message.lines.ToArray());
            });
        }

        Rect     bounds = GUILayoutUtility.GetRect(0.0f, 100.0f, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(false));
        GUIStyle style  = new GUIStyle(EditorStyles.textArea);

        style.wordWrap = true;
        text           = EditorGUI.TextArea(bounds, text, style);

        serializedObject.ApplyModifiedProperties();
    }
Esempio n. 3
0
        /// <summary>
        /// <see cref="LabelReaderBase.GetFullTextFromImage(object)"/>
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public override async Task <string> GetFullTextFromImageAsync(object image)
        {
            CoreMedia.CMSampleBuffer iOSImage = (CoreMedia.CMSampleBuffer)image;
            VisionImage visionImage           = new VisionImage(iOSImage);

            visionImage.Metadata = new VisionImageMetadata {
                Orientation = GetOrientation()
            };
            VisionApi            api            = VisionApi.Create();
            VisionTextRecognizer textRecognizer = api.GetOnDeviceTextRecognizer();
            VisionText           textResult     = await textRecognizer.ProcessImageAsync(visionImage);

            return(textResult?.Text);
        }