Автор: Дмитрий Логинов Найдено здесь
Я, как нормальный инженер, не буду делать умное лицо, а покажу пальцем. Доблестные преподаватели полутехов, универов и авиационных институтов, не щадя нашего живота, гоняли перед нами 1,5-часовые рекламные ролики по линейке, матану, фану, терверу и прочей абракадабре. При упоминании сих заклинаний на меня до сих пор смотрят, как на умного человека. Так уж случилось, что базы данных оказались более востребованной областью. Но есть области, где без загибания пальцев и без букв x и y, не обойтись. Пример, криптография, сжатие информации, распознавание образов и т.д. Может сложится впечатление, что все материки открыты и там уже ничего нет. Ну что же, в математическом плане, наверное, да. Но есть один момент. Все из вас знают, что такое JPEG. До этого алгоритма представления графической информации, последняя рассматривалась в виде потока и к нему применялся один алгоритм сжатия, например LZW в случае с GIF. Что главного добавили ребята из DIG? Вторую координату. Т.е. рассматривался не поток, а блок 8x8 или более. Представьте себе картинку: набор разноцветных непересекающихся прямоугольников. Если пробежаться по картинке слева направо и сверху вниз, чтобы получить поток пикселов, то получится не столь упорядоченная картина! Файл, который будет хранить только описание прямоугольников(2 точки и цвет) будет занимать меньше места, чем сжатое растровое изображение. Намек ясен? Конечно, JPEG работает не совсем так. Но у нас другая тема для обсуждения. Еще пример. Возьмем ту же картинку. Допустим, там использовалась палитра в 24 разряда, TrueColor, т.е. под поле цвета уходит 3 байта. Ну, далее все понятно. Если картинка размером 320х200, то в ней 3х64К байт "пикселов" минус сжатие. Но в картинке используются от силы пара десятков цветов. Мы не будем гениями, если все же переиндексируем палитру, положим ее в начало файла и под цвет будем отдавать 1 байт. Уже сжатие! Та же логика может применятся в следующем случае. Попробуйте на экране отличить два цвета: FFFFFF и FEFEFE. Это два белых цвета! Мысль понятна? (Черт, уже статья получается!) Подкину дальше мыслишку. А почему бы не распознавать любые пересекающиеся фигуры? Т.е. добавить 3-ю координату. Зачем разбивать прямоугольник, один угол которого перекрыт? Почему из-за этого нам надо хранить 2 прямоугольника? Просто это Z-буффер. Перекрытые фигуры лежат от нас дальше. Да и вообще, что это мы о графике, да о графике? Звук! Классическая информация, которая до сих пор представляется в виде потока! Ну, конечно, надо научится распознавать формы и даже с кривыми краями (что и сделали в JPEG200, я имею в виду кривые края, а не формы!). Здесь, уверяю вас, распознавание форм - задача давно решенная. И столь же "глубоко математический" подход мы с другом использовали при решении задачи HANDWRITING RECOGNITION. Беглый осмотр существующих программ показывает, что их создатели очень любят математику и знают ее очень хорошо. Честь им и хвала. Без математики трудно. Просто не продохнуть. Но возьмите тот же FineReader PRO. Загоните в него текст с экзотическим шрифтом, где буквы наполовину заполнены, в общем состоят из текстур. Он ничего не распознает. Да, конечно, он не предназначен для решения таких задач. Ну, хорошо, возьмите и стандартным Courier-ом наберите текст. А далее можно сделать 2 вещи. Первая, наклоните этот текст больше чем курсив, значительно больше. Или вторая, просто отсканируйте этот текст с разрешением 100 DPI. В обоих случаях, вам придется сильно поработать ручками… ;) чтобы помочь FineReader-у "распознать" предложенный вами текст! О чем это говорит? Конечно, не о глупости ребят из AABBYY. Это говорит о "статистических" методах решения задачи распознавания. Т.е. так называемом WRITER DEPENDENT подходе к составлению словаря и поиску элемента. Тоже самое наблюдается в программе фирмы IBM по распознаванию почерка на чеке, в программах распознавания почтового индекса и в FineReader Пропись, в котором буковки должны быть четко разделены. Да что это я все о себе, да о себе! Если о чем-то говорить, думать или обращать внимание все больше и больше, то это становится тверже, ощутимей, реальней. По Королевству ходит много людей. Профессионалы и еще нет. Пусть выскажется на эту тему тот, кто хочет. Другие прочитают. У них появится ощущение романтики. Ведь на самом деле в программировании масса "нерешенных" задач, после решения которых можно получить хорошую прибыль. И после даже родители не будут наезжать, что ты ерундой занимаешься. Да и девчонки не будут называть тебя "компьютерЩЩЩик", который двух слов без писюков связать не может. Давайте пацаны, вперед. Научитесь носить фраки. ;)