Я попробовал на зимних каникулах поразбираться с исходниками dewarping от Рамиза. Я хотел во-первых, убрать все сторонние зависимости - TinyXML, OpenCV, а во-вторых - переписать всё с С++ на СИ и FreeImage.
Посидев над этим занятием несколько дней подряд, я осознал, что это, увы, того совершенно не стоит. Ознакомившись немного "изнутри" с dewarping от Рамиза Зейналова, я понял, что это совершеннейшее барахло - не стоящее ни нашего времени, ни нашего внимания. Это оказалась просто легкомысленная поделка 23-летнего студента, сделанная лишь с целью защиты диплома - но вовсе не для реальной практической работы. Кто не знает - dewarping был дипломной работой Рамиза.
Если бы кто видел - что там внутри, в исходниках! Какое-то сумасшедшее, безумное нагромождение бог знает чего!
Такое впечатление, что Рамиз решил в этой дипломной работе показать "всё что знает" из области программирования С++ - тут Вам и шаблоны (в изобилии), и наследование, и STL (но это ещё ладно), объявления const-mutable, виртуальные функции.
А зачем, спрашивается, он применяет собственные DLL? Это что - желание выпендриться, что ли, и показать, "какой я умный"? Зачем загружать параметры из XML-файла - (добавляя только из-за этого TinyXML)- ведь параметры вполне можно было бы загрузить просто из текстового файла.
А эта нелепая манера - везде и всюду - где надо и где не надо - городить классы, классы, классы... Это чтобы комиссия, принимающая диплом, не заподозрила его в незнании, что такое "класс" в С++?
Короче, преобразовать это безумие из С++ в СИ - практически нереально. Точнее можно (убив месяц работы) - только смысла нет. А без этого там не разобраться. И, самое главное - а чего ради вообще разбираться в работе Рамиза? Результат действия его Dewarping (на моих тестовых сканах, а не на его) оказался весьма слабеньким. И потом - всё это работает ЧУДОВИЩНО медленно. Просто ни в какие рамки - по скорости. А всё потому, что там делаются какие-то никому не нужные вычисления неизвестно чего - которые никак положительно не влияют на КАЧЕСТВО результата. Зато всё это, безусловно, продемонстрировало дипломной комиссии - какой перед ними продвинутый студент, сколько он всяких математических алгоритмов знает...
В общем, итог такой: Dewarping от Рамиза Зейналова можно смело выкидывать на свалку, где ему самое и место.
Ничего полезного там для нас нет - ну разве что кроме каких-то общих идей (в пояснительной записке) и, может быть, отдельных каких-то функций оттуда (хотя этого добра полно и в других местах).
Dewarping от Рамиза Зейналова был создан для одной-единственной цели - пустить пыль в глаза дипломной комиссии, и показать ей эрудированность автора. А с точки зрения реального дела - это творение оказалось ниже плинтуса.
Чем пытаться что-то выжать из Dewarping от Рамиза Зейналова, уж лучше просто с нуля написать свой Dewarping - (как поступил Tulon, автор Скан Тейлора, к примеру) - толку будет гораздо больше.
Жаль только напрасно потраченных времени и сил.
Ну что ж - отрицательный результат - тоже результат.