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(); }
/// <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); }