static void Main(string[] args) { string subscriptionKey = ConfigurationManager.AppSettings["subscriptionKey"]; if (string.IsNullOrWhiteSpace(subscriptionKey)) { Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine("To play this sample, you should firstly get a subscription key and put it into the App.Config file."); Console.WriteLine("If you don't have one, please access"); Console.WriteLine("http://www.projectoxford.ai/doc/general/subscription-key-mgmt"); Console.ResetColor(); Console.WriteLine(); Console.WriteLine("Please enter any key......"); Console.ReadLine(); return; } var vision = new VisionHelper(subscriptionKey); string imagePathorUrl = "http://www.colins-it.co.uk/blog/wp-content/uploads/2012/08/keep-calm.jpg"; // var imagePathorUrl = GetValidImagePathorUrl(); vision.RecognizeText(imagePathorUrl); Console.ReadLine(); }
static void Main(string[] args) { var searchPath = "pdf"; var outPath = "image"; // Note, this will create a new Azure Search Index for the OCR text Console.WriteLine("Creating Azure Search index..."); AzureSearch.CreateIndex(serviceClient, indexName); // Creating an image directory if (Directory.Exists(outPath) == false) { Directory.CreateDirectory(outPath); } foreach (var filename in Directory.GetFiles(searchPath, "*.pdf", SearchOption.TopDirectoryOnly)) { Console.WriteLine("Extracting images from {0} \r\n", System.IO.Path.GetFileName(filename)); var images = PdfImageExtractor.ExtractImages(filename); Console.WriteLine("{0} images found.", images.Count); Console.WriteLine(); var directory = System.IO.Path.GetDirectoryName(filename); foreach (var name in images.Keys) { if (name.LastIndexOf(".") + 1 != name.Length) { images[name].Save(Path.Combine(outPath, name)); } } string ocrText = string.Empty; Console.WriteLine("Extracting text from image... \r\n"); foreach (var imagefilename in Directory.GetFiles(outPath)) { OcrResults ocr = vision.RecognizeText(imagefilename); ocrText += vision.GetRetrieveText(ocr); File.Delete(imagefilename); } Console.WriteLine("Extracting key phrases from processed text... \r\n"); KeyPhraseResult keyPhraseResult = TextExtraction.ProcessText(ocrText); // Take the resulting orcText and upload to a new Azure Search Index // It is highly recommended that you upload documents in batches rather // individually like is done here if (ocrText.Length > 0) { Console.WriteLine("Uploading extracted text to Azure Search...\r\n"); string fileNameOnly = System.IO.Path.GetFileName(filename); string fileId = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(fileNameOnly)); AzureSearch.UploadDocuments(indexClient, fileId, fileNameOnly, ocrText, keyPhraseResult); } } // Execute a test search Console.WriteLine("Execute Search..."); AzureSearch.SearchDocuments(indexClient, "Azure Search"); Console.WriteLine("All done. Press any key to continue."); Console.ReadLine(); }