Программист Сталина (СИ) - Кулаков Игорь Евгеньевич - Страница 31
- Предыдущая
- 31/102
- Следующая
Кивают.
- Его, когда мои родители в школе учились, не было в 80-х. Все на шариковые ручки перешли и отменили. Может и раньше, точно не знаю. А по факту, мне так больше, чем ручкой расписаться - уже лень. Всё одно, к «клаве» привык.
Поташник хмыкнул:
- Вот откуда желание набирать на компьютере. То-то глядел эти дни, с какой скоростью ты, Никита, текст на компьютере набираешь. Как машинистка какая-то.
- Дело в практике, а с ней всё отлично - соглашаюсь.
Пока сержанты, отвлёкшиеся «на просмотр», не начали фотографировать энциклопедию дальше, занял ненадолго второй компьютер - поэкспериментировать с слабыми возможностями старенькой веб-камеры и программы LiveWebCam, выдававших совместными усилиями снимки в разрешении 640*480.
Имеем лист стандартного формата A4. Карандаш в моей руке рождает каракули. Ориентирую лист «по альбомному». Щёлкаю с листа и с притащенной для меня газеты пару десятков кадров. И понимаю, что из-за её разрешения, даже когда будет лучше качество - после фиксации и избавления от дрожания и правильном освещении, из веб-камеры слишком много не выдавишь.
За спиной - не могущие удержать любопытства и постоянно отвлекающиеся от важного поручения лично товарищей Сталина и Берии сержанты и кэп. Впрочем, первым ничего плохого от вождя не будет. Они щелкают и печатают быстрее, чем те двое, со знаменитыми ФИО, успевают читать. Можно ненадолго и отвлечься на «проникнуться» реалиями будущего. Они - будущего, я - прошлого. Поймём ли мы друг друга все по настоящему?
Показываю им их и свою рожи в окне программы, а Поташник сразу выдаёт идею про шпионское оборудование. Ха! Как в Перм… Молотове! Только использовать для интересов СССР.
Профдеформация, туды её в качель. Подтверждаю:
- Подобные устройства могут быть очень миниатюрными. Всё, что душе угодно. Хе-хе, в будущем… и добиваю присутствующих, достав свой древний LG. Сообщаю:
- Специально выключил, едва в прошлое попал. Так что пока батарея полная. Надеюсь, здесь зарядное устройство мне сделают. Показываю камеру для видео и снимков, диктофон и кучку прочих возможностей старого 2008 года кнопочного агрегата.
Вижу, что кэп оживился после выражения надежды на создание зарядки для телефона. Ха, не понимает что-ли? Даже в качестве шпионского для особо ценных агентов такое устройство нельзя отпускать от себя. Из пушки - по воробьям, неужели не догадывается и строит в голове «рацпредложение для Берии»?
В который раз пытаюсь вернуться к начатому. Расчерчиваю листы на разный размер «знакомест». Словечко само всплывает в памяти из горы тех сведений, что узнал про времена «синклера» в процессе разгоравшегося увлечения эмуляторами и эпохой 8-биток.
Внутри каждого знакоместа - снова аккуратная, совсем бледная сетка другим, остроотточенным карандашом. Вариант внутри 8*8. Больше - значит сложнее будет народу запомнить правила отрисовки символов и мне сложнее запрограммировать их уверенное распознавание.
Слабо улыбаюсь, оценивая себя - «программистская сущность так и прёт», ничего не поделаешь.
Прикидывая запасы места на отступы по краям на листе, сделал разметку 8*8 на символ, оставил расстояние между знакоместами в их половину, т.е. 12*12 на условный квадрат вокруг центра знакоместа.
Под символы больше, чем 8*8 отводить не стал. На «спекки» в 80-х хватало, здесь тем более сойдёт. Пока.
В итоге счёл пригодными два варианта:
32 * 48 (это если отмечать привычной тонкой линией, хотя и в соответствии с правилами создания символов) и 16*24 знакомест на «рабочем поле» листа в случае, если линии потолще. Соответственно, один лист данных, подаваемых на «куснуть» числодробилкам - 1536 и 384 символов. Совсем не густо для передачи данных по сравнению со скоростью гигабитных сетевух, и не то чтобы терпимо, но пока… сойдёт.
Разработать стандарт символов. И всё. «Простейший» анализатор в проге будет не то, чтобы плёвым делом, но около того. Там главное - опытным путём подобрать, какой процент темных пикселов с реального снимка в том условном «пространстве» (1*1,2*2,3*3), которые отводится на «пикселы знакоместа», достаточен, чтобы анализатор счёл его закрашенным. Делаю логичный вывод - после загрузки реального снимка в обычный графический объект, надо копировать его содержимое с промежуточным преобразованием в отдельный двухмерный массив 480*640 типа byte со значениями пикселов снимка в диапазоне от 0 до 255.
Какое-то значение будет границей, по которой отделяются закрашено/не закрашено. Всё. Дальше будет работать функция анализатора содержимого знакомест. На выходе - распознанный (или нет:-)) по результатам сравнения с шаблонами символ. Пока будут заполнять от руки, но позже возможен вариант…
Закрашиваю множество символов на листах. Примерно также, как выглядели символы на экране «спекки». 0…9, А…Я, A…Z, пока хватит. Главное потестировать принцип. Трачу почти два часа на подготовку шаблонов для сравнения в программе. Каждому символу соответствует уникальное, неповторимое написание, но анализатор должен верно понимать и точно идентифицировать определённый процент «корявостей».
Что-то сие поминает мне почтовые индексы. Отдалённо. Тут дело настоящим распознаванием текста попахивает.
Снова делаю снимки веб-камерой, кое-как примотанной на краю стола с помощью принесённой Поташником чёрной тканевой изоленты. Лист - примерно в 25 сантиметрах ниже, на плоском сиденье стула.
Изучаю самый достойный экземпляр из получившихся. Выношу резюме - получше, чем в первый раз, но всё равно - не ахти, перекашивает. Нужен нормально фиксирующий веб-камеру штатив. Меня «толкает под руку» догадка - фотоувеличитель!
Сержант, тот, что Михаил, вникший в идею, несёт. Ага, одноимённый с их фотоаппаратом, как узнаю - ФЭД также какой-то там. Разбираю, снимаю объектив с фотоувеличителя, ставлю веб-камеру. Фиксирую её тем же широкоизвестным в СССР/пост-СССР вышеупомянутым способом.
Результат лучше. Значительно лучше. Примерно такое же устройство мне предки, уверен, обеспечат. С жестким по размеру лотком под A4, плавным ходом настройки (если собьётся) и возможностью нежной и надежной фиксации веб-камеры. Разбираю временную конструкцию и возвращаю её сержантам с напутствием о продолжении их нелёгкого фототруда.
Выдаю вслух:
- Сейчас буду писать программу, которая будет переводить все эти кадры на компьютере. Смысл основной - вводить стандартизировано данные в компьютер. Намного медленнее, пожалуй, в миллион раз, чем в будущем, но должно быть на пару порядков быстрее, чем сделает здесь даже обученная машинистка или я сам, долбя по «клаве».
Добавляю специально для кэпа:
- И для секретности подобные листы, вдруг попавшие в руки… «кому не надо», ничего не объяснят. Так сказать, для «механизированной обработки», а как именно… подобная терминология, верная по сути, но не разъясняющая секретов из будущего как некоему условному злоумышленнику, так и заполняющим их, ничего не скажет.
Первый прототип программы-распознавалки к вечеру был готов. Просто читал графический файл, содержащий снимок, по пути снижал ему цветность, и дальше жевал его по принципу «сунуть в двухмерный массив для анализа и сравнения с шаблонами». Всё, как заранее продумал. Добавил ползунок -регулятор границы «чист/закрашен» для тестовых проверок.
В соответствии с визуально видимой на экране помещённой на изображение сеткой по «знакоместам», а фактически - работая по массиву с сконвертированными данными, поэкспериментировал с алгоритмом главной функции проги, начиная добиваться точной работы механизма распознавания и сравнения со стандартным «образцами»…
Первый маленький текст считался с картинки и прилично распознан «анализатором», проходит сохранение в текстовой файл с распознанным содержимым листа.
Подвожу итог - «быдлокодер»:-) оглядел попавшее с ним железо, поставил сам себе задачу, почесал репу и настругал «быдлокод». Который, тем не менее вскоре заработал, и даже, после неких шаманских танцев, почти правильно.
- Предыдущая
- 31/102
- Следующая