private static List <Answer> GetAnswers(Bitmap bitmap, List <string> resultWordList) { Answer a = new Answer { Bitmap = bitmap.Clone(new Rectangle(85, 540, 580, 85), bitmap.PixelFormat) }; a.Bitmap.ToBlackWhite(blackWhiteConvertGradeForAnswers); a.Bitmap.Save(imageFilePath.Split('.')[0] + "_A.png"); Answer b = new Answer { Bitmap = bitmap.Clone(new Rectangle(85, 680, 580, 85), bitmap.PixelFormat) }; b.Bitmap.ToBlackWhite(blackWhiteConvertGradeForAnswers); b.Bitmap.Save(imageFilePath.Split('.')[0] + "_B.png"); Answer c = new Answer { Bitmap = bitmap.Clone(new Rectangle(85, 820, 580, 85), bitmap.PixelFormat) }; c.Bitmap.ToBlackWhite(blackWhiteConvertGradeForAnswers); c.Bitmap.Save(imageFilePath.Split('.')[0] + "_C.png"); List <Answer> answerList = new List <Answer>() { a, b, c }; var advancedOcrForAnswers = new AdvancedOcr { Language = Turkish.OcrLanguagePack }; OcrResult advancedResultForAnswers = advancedOcrForAnswers.ReadMultiThreaded(new List <Bitmap>() { a.Bitmap, b.Bitmap, c.Bitmap }); a.OcrPage = advancedResultForAnswers.Pages[0]; b.OcrPage = advancedResultForAnswers.Pages[1]; c.OcrPage = advancedResultForAnswers.Pages[2]; foreach (Answer answer in answerList) { if (answer.OcrPage != null && answer.OcrPage.Words != null) { foreach (OcrWord word in answer.OcrPage.Words) { word.Text = word.Text.ToLower(); answer.Count += resultWordList.Count(x => x == word.Text); } } } answerList.ForEach(answer => Console.WriteLine(answer.Text + " - " + answer.Count.ToString())); return(answerList); }