Автор Тема: Высокоуровневая схема работы идеальной программы скан-обработки  (Прочитано 12622 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
kontiky
Цитировать
Не вижу никакого криминала в том, что программа может делать более одного действия по сканобработке.
Криминала, конечно, никакого - Вы вообще вольны делать так, как хотите. Я лишь предлагаю оптимальный вариант.

Я имел в виду разделение всего процесса сканобработки (см. на примере СТ) на несколько (хотя бы 2 минимум) независимые программы. Первая программа - делает разрезку (опционально поворот 90 180 270 и deskew) - и всё. Продукция первой программы - полуфабрикат. И не надо пытаться ещё как-то улучшить этот полуфабрикат - путём навешивания всё новых и новых фич в первую программу (по разрезке).

Такой подход имеет большой смысл - люди хотят иметь программу, которая им просто порежет сканы, и всё - а дальше, дальше у людей останется свобода, что им делать с порезанными сканами дальше.

А если Вы добавите в программу по разрезке ещё фичи - типа "Полезная область" как в СТ и т.п., то этим самым Вы лишите пользователя свободы выбора, что ему делать дальше с порезанными сканами. А может, человек и не хочет обрабатывать порезанные сканы так, как Вы можете ему предложить (это если в рамках одной-единственной программы), так зачем же ему навязывать?

Вот эта самая свобода - и есть наибольшая ценность, понимаете? Tulon и bolega этого не поняли, они с упорством маньяка пошли путём "всё-в-одном" (в одной программе).

Далее. Вторая программа - пусть принимает на входе продукцию первой программы, и далее делает всё остальное (обрезка по рамке, бинаризация и т.п.). Вот именно в эту вторую программу и добавляйте сколько угодно каких угодно фич - но не в первую.

Это всё равно, что разделить Скан Тейлор на 2 независимые программы:
1-я - СТ-стадии 1-3
2-я - СТ-стадии 4-все оставшиеся.
Цитировать
Нет смысла плодить автономные программы, многие части которых одинаковы.
Такой поворот событий невозможен при предлагаемом мною подходе.

Кроме того - Вы же учтите факт наличия СТ. Ваша программа, чтобы быть реально востребованной, должна хоть как-то в выгодную сторону отличаться от СТ. Иначе кто же будет Вашей программой пользоваться?

Я Вам предлагаю именно тот вариант, который будет гарантированно востребован. А Вы пытаетесь просто "повторить" СТ.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
kontiky
Проиллюстрирую свою мысль на примере СТ. Вот скриншот СТ-стадий обработки:



Я бы разделил СТ на 2 независимые программы. Красные цифры "1" и "2" показывают, как бы я разделил функционал СТ между этими 2-мя программами. Именно программу под красной цифрой "1" я Вам и предлагаю сделать - а всю свободу своего творчества Вы могли бы разместить в программе под красной цифрой "2" - тут делайте, что хотите, любой набор фич.

kontiky

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Цитировать
Я имел в виду разделение всего процесса сканобработки (см. на примере СТ) на несколько (хотя бы 2 минимум) независимые программы.
Вы путаете автономию этапов сканобработки, с их структурным размещением (по программам). Вам же не много программ нужно, в конечном итоге, а просто возможность выполнять сканобработку этап за этапом с фиксацией промежуточных результатов (что бы можно было что-то подправить на стороне, если промежуточный результат чем-то не устраивает). СТ в этом смысле - монолит, т.е. нужно делать в нем все от и до. СК - менее монолитен. Я сам неоднократно сначала разрезал там сканы без доп. обработки, а потом снова загружал их в СК как отдельный проект для последующей обработки. Просто начальная разрезка сделана в СК через жопу резаки, что не очень удобно.

Поймите, ничего страшного в том, что одна программа содержит несколько этапов сканобработки нет, если эти этапы жестко не завязаны один на другой и допускают независимое использование. В противном случае, ваши предложения явно половинчаты, т.к. следуя вашей логике, нужно выносить в отдельные программы и исправление ориентации, и разрезку страниц и компенсацию наклона тоже. :) К слову, и в этом нет ничего страшного - это то, что называется unix way. Но мы то не в юникс-консоли работаем, верно?

kontiky

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Цитировать
Я Вам предлагаю именно тот вариант, который будет гарантированно востребован.
C этим я, пожалуй, соглашусь.
Цитировать
А Вы пытаетесь просто "повторить" СТ.
Можно сказать, что СТ пытается повторить СК и что?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
kontiky
Цитировать
Вы путаете автономию этапов сканобработки, с их структурным размещением (по программам).
Да нет же, не путаю я эти вещи. И вот почему:
Цитировать
Вам же не много программ нужно, в конечном итоге, а просто возможность выполнять сканобработку этап за этапом с фиксацией промежуточных результатов (что бы можно было что-то подправить на стороне, если промежуточный результат чем-то не устраивает).
Нет, категорически нет. Именно нужно "много программ" - а не "просто возможность выполнять сканобработку этап за этапом с фиксацией промежуточных результатов". Почему? Ответ прост: ради максимальной простоты интерфейса программы по разрезке. Если в программе будет, грубо говоря, только разрезка, и больше ничего - то её интерфейс в этом случае (и только в этом случае) будет максимально прост. Прост, как палка.

А если же сделать "просто возможность выполнять сканобработку этап за этапом с фиксацией промежуточных результатов" - то получится "Кромсатор" - в плохом смысле слова. Тут Вы попадаете в ту же ловушку, что и Tulon с bolega.

Разрезалка разворотов должна быть простая как палка - ничего лишнего. Во главу угла разрезалки следует поставить максимальную простоту интерфейса - я бы даже сказал - аскетизм интерфейса.

А этого можно добиться только путём не-включения в разрезалку не-относящихся к разрезанию фич.

Знаете, говорят - "всё гениальное просто". Это мудрый принцип. Только таким подходом, как я расписываю, удастся привлечь всяких там женщин к сканобработке.

Поймите - этим женщинам легче лишний раз перекинуть сканы из одной простейшей программы (т.е. по разрезке) в другую (следующую по этапам, №2) - чем разобраться с единой сложной программой.

Не будут они разбираться с единой сложной программой. Хоть тресни, но не будут.

Выход - один, и он в том, что я предлагаю.
Цитировать
т.к. следуя вашей логике, нужно выносить в отдельные программы и исправление ориентации, и разрезку страниц и компенсацию наклона тоже.
Доводить до абсурда эту политику мы не будем. Просто поделим все операции на некие логически-цельные блоки - и каждый блок поместим в отдельную программу (или 2-3 блока вместе - подумаем позже).

Просто разрезка - это очевидно такая операция, которая стоит особняком. Слишком уж кардинально она меняет сканы - чтобы можно было её объединять со всеми прочими операциями.

Кстати - в программе по разрезке ИМХО допустимо сделать одновременно опциональный Deskew и поворот 90-180-270 - так что я не говорю, что совсем уж отдельно одну разрезку.
Цитировать
Можно сказать, что СТ пытается повторить СК и что?
Я имел в виду, что давайте не будем повторять ошибки СТ.

PS Цель ведь состоит в том, чтобы привлечь самые "неотёсанные" слои пользователей к сканобработке. Поэтому нужно очень ответственно и продуманно подходить к каждой мелочи. Любой малый неосторожный шаг - и дело будет испорчено, т.е. программа не наберёт популярности.

Представьте себе мысленно - вот мы имеем простейшую предлагаемую мною программу-разрезалку. Именно выделенная в отдельную программу. В этом случае мы сможем написать к ней подробную инструкцию в картинках - детально по шагам разжевывающую "для самых маленьких" как разрезать развороты. Тут уж и самый тупой юзер разберётся (а также тот, которому "хочется побыстрей" - и таких много).

Новичку, делающему свою первую скан-книгу, обычно хочется "сразу получить" хоть какой-то конкретный результат - и с малыми усилиями.

Получается просто - проще некуда. А простота - это главный залог успеха.

Тогда с Вашей разрезалки в будущем будет начинаться ЛЮБОЕ пособие по сканобработке.

А уже потом в этих инструкциях будет идти использование СТ, СК, и т.п.

Я вообще думаю, что для юзера следует изобразить изготовление скан-книги как ряд ключевых этапов (с описанием признаков каждого этапа и самоконтролем качества). Ведь так будет удобно - если разбить "одно сложное" на ряд простых, логичных, внутренне-законченных и взаимно-независимых кусков (каждый кусок можно будет делать в той программе, которая юзеру наиболее нравится). Так сказать, разбить "одно сложное" на "несколько простых".

Разрезка - это первый логический этап. Все последующие этапы пусть юзер делает по своему свободному выбору - в той программе, в которой ему (а не Вам) захочется. Т.е. нужна свобода выбора.

Таким образом, выделение разрезки в отдельную независимую программу имеет цель максимизации 2 принципов:

1. Простота интерфейса.
2. Свобода выбора пользователя (подход "просто возможность выполнять сканобработку этап за этапом с фиксацией промежуточных результатов" не обеспечивает максимальности этой свободы - т.к. юзеру нужно будет на пол-пути заморачиваться с выводом - к чему эти лишние телодвижения, это стеснение свободы).

Подобная разрезалка нужна как воздух. Я Вам плохого не посоветую. 8)
« Последнее редактирование: 03 °ТУгбв 2010, 13:18:08 от monday2000 »

kontiky

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Цитировать
Я вообще думаю, что для юзера следует изобразить изготовление скан-книги как ряд ключевых этапов (с описанием признаков каждого этапа и самоконтролем качества).
Собственно, моя работа с СК началась только после прочтения руководства Scan and Share

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
kontiky
Ну что Вы решили - будете делать программу или нет?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
kontiky
Мне пришла в голову такая идея.

Существует некий способ переделать Java-программы так, чтобы они перестали зависеть от Java! :o Я это случайно узнал - на примере консольной утилиты pdftk,
которая использует Java-библиотеку iText. Вот что написано на сайте pdftk http://www.accesspdf.com/pdftk/ :
Цитировать
(While iText is a Java library, pdftk is not Java — thanks to the magic of GCJ!)
GCJ - это Java-компилятор, который может компилировать прямо в машинный код, см. http://gcc.gnu.org/java/

kontiky

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
monday2000
Цитировать
Ну что Вы решили - будете делать программу или нет?
Я сейчас в раздумьях
Цитировать
GCJ - это Java-компилятор, который может компилировать прямо в машинный код
Виртуальная Java машина и так делает это на ходу, во время выполнения. Поэтому скорость выполнения джава-программ часто не сильно отличается от скорости программ, написанных на С/C++

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
kontiky
Цитировать
Я сейчас в раздумьях
Предлагаю наименее трудозатратный для Вас вариант:

Простейшая разрезалка  - с умением поворота на 90-180-270 до разрезания (поскольку попадаются порой при разрезании сканы кверх ногами и т.п. повёрнутые ортогонально). На первое время даже без Deskew (для простоты).

А дальше - время покажет, как дальше развивать программу.

Мне кажется, что здесь такой вариант, когда, как говорится, "главное начать". А потом всё как-то само собой устаканится. Я вот тоже когда-то не думал-не гадал заниматься DjVu  :) - всё произошло как-то само собой и естественным образом.

Всё у Вас получится нормально - если Вы этим смущаетесь. Возможных ошибок/неудач страшиться не следует - это так естественно.

По своему опыту могу сказать, что делать и выкладывать свои бесплатные программы (из области DjVu-сканобработки и т.п.) - это интересное, увлекательное и захватывающее занятие, приносящее огромное моральное удовлетворение.
« Последнее редактирование: 10 °ТУгбв 2010, 12:36:42 от monday2000 »

kontiky

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
monday2000
Цитировать
Предлагаю наименее трудозатратный для Вас вариант:
Да, именно так все и будет.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
kontiky
Цитировать
Да, именно так все и будет.
Ура! :D Тогда ждём... ::)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
kontiky
Я тут увидел любопытную штуку:

Java Portable

http://portableapps.com/apps/utilities/java_portable

Интересно, её можно будет применить к Вашей будущей программе - чтобы на своём компе Java не ставить?

ExeN-321

  • Новичок
  • *
  • Сообщений: 8
    • ICQ клиент - 412021067
    • Просмотр профиля
    • E-mail
Да, необходимость альтернативы СК и СТ назрела давно. На мой взгляд возможно создать ряд программ по операциям. Как вариант предлагаю в дальнейшем объединить эти несколько программ в одном установочном пакете с возможностью выбора устанавливаемых компонентов примерно как в MS Office. 

DrZoo

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
    • E-mail
Похоже, что программы от kontiky мы не дождемся. Прошло 2 года, а воз и ныне там.