Я на самом деле пытаюсь распознать символы Брайля в документе.Я намерен преобразовать документ Брайля в обычный текст.Я использую OpenCV с Java для обработки изображений.
Сначала я импортировал изображение документа Брайля:
Затем я выполнил некоторую обработку изображения, чтобы оцифровать исходное изображение.Я прочитал, что важными шагами являются:
- Преобразование изображения в уровни серого
- Уменьшение шума
- Повышение контрастности края
- Binarizeизображение
Вот код, который я использовал:
public static void main(String args[]) {
Mat imgGrayscale = new Mat();
Mat image = Imgcodecs.imread("C:/Users/original_braille.jpg", 1);
Imgproc.cvtColor(image, imgGrayscale, Imgproc.COLOR_BGR2GRAY);
Imgproc.GaussianBlur(imgGrayscale, imgGrayscale, new Size(3, 3), 0);
Imgproc.adaptiveThreshold(imgGrayscale, imgGrayscale, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 5, 4);
Imgproc.medianBlur(imgGrayscale, imgGrayscale, 3);
Imgproc.threshold(imgGrayscale, imgGrayscale, 0, 255, Imgproc.THRESH_OTSU);
Imgproc.GaussianBlur(imgGrayscale, imgGrayscale, new Size(3, 3), 0);
Imgproc.threshold(imgGrayscale, imgGrayscale, 0, 255, Imgproc.THRESH_OTSU);
Imgcodecs.imwrite( "C:/Users/Jean-Baptiste/Desktop/Reconnaissance_de_formes/result.jpg", imgGrayscale );
}
Я получил следующий результат для этого шага:
По моему мнению, мы можем улучшить качество этого изображения для улучшения результатов, но я не разбираюсь в различных методах обработки изображений.Могу ли я улучшить качество своих фильтров?
После этого я хотел бы выполнить сегментацию изображения для обнаружения различных символов этого документа.Я хотел бы разделить различные символы документа, чтобы преобразовать их в текст.
Например, я нарисовал разделительные линии документа вручную:
Но я не нашел решения для этого шага.Есть ли возможность сделать то же самое с OpenCV?