Ru-Board.club
← Вернуться в раздел «Программы»

» Scan Tailor: Часть 2

Автор: unreal666
Дата сообщения: 21.10.2012 08:00
kuharsanek
только сейчас заметил, что ошибка происходит в какой-то непонятной проге NMIndexStoreSvr.exe, которая не является частью ST.
Это часть Nero. Выкинь его из автозагрузки, а то в инете говорят, что он часто какие-то проблемы вызывает.

Пример

Цитата:
Если всё время вылетает ошибка, связанная с файлом NMIndexStoreSvr.exe, то необходимо в "Мой компьютер" щёлкнуть правой кнопкой по Nero Scout, выбрать "Опции" и в открывшемся окне убрать галочку с "Включить Nero Scout" и нажать ОК. Если при нажатие правой кнопкой на Nero Scout происходит подвисание, то нужно: Пуск - Выполнить/ скопировать и вставить: C:\Program Files\Common Files\Ahead\Lib\NeroScoutOptions.exe и проделать вышесказанное. Для удаления надоедливого Nero Scout'a из "Мой компьютер" нужно: Пуск - Выполнить/ скопировать и вставить: regsvr32 /u "C:\Program Files\Common Files\Ahead\Lib\MediaLibraryNSE.dll" После этого у меня пока ОК. Даже Nero Home заработал. Кому интересно суть этого екзешника - подключение к инету, типа чего-то он там проверяет и обновляет. Возможно лечится лецензией
Автор: kuharsanek
Дата сообщения: 21.10.2012 08:19
unreal666
Наиогромнейшее спасибо.
Сделал это:
Цитата:
Для удаления надоедливого Nero Scout'a из "Мой компьютер" нужно: Пуск - Выполнить/ скопировать и вставить: regsvr32 /u "C:\Program Files\Common Files\Ahead\Lib\MediaLibraryNSE.dll"
помогло.
С Уважением Александр.
Автор: kuharsanek
Дата сообщения: 01.11.2012 11:21
Обновите пожалуйста ссылку на STA - вариант ScanTailor версии 0.9.7.1 с патчем от anagnost96
Автор: vladlen666
Дата сообщения: 14.11.2012 14:20
Скажите пожалуйста, не поднимался ли вопрос о добавлении в ST возможности "умного" разрезания сканированных страниц по горизонтали? Это было бы удобно для создания djvu c прицелом на електронные читалки. Я сейчас пользуюсь для этого утилиткой pdf2lrf она из djvu создает zip с порезанными страницами в формате png.
Автор: LazyKent
Дата сообщения: 17.11.2012 17:17

Цитата:
Скажите пожалуйста, не поднимался ли вопрос о добавлении в ST возможности "умного" разрезания сканированных страниц по горизонтали?

Автор программы (Tulon) сейчас не занимается этим проектом.
Более-менее можно надеяться на появление новшеств в версии "Scan Tailor Еnhanced" (подробности в "шапке").
Автор: iit512
Дата сообщения: 19.11.2012 08:28
Добрый день!
Я давно пользуюсь вариантом ScanTailor Plus, и вот что я заметил: галочка "Equalize illumination"/"Выровнять освещение" не сохраняется в проект. Это очень мешает в работе, потому что по умолчанию (когда открываешь проект заново) она _отключена_.
Есть ли какой-нибудь способ это исправить? Куда нужно смотреть в исходниках?
Автор: Onger
Дата сообщения: 03.12.2012 06:54
Утилита для увеличения скорости работы в несколько раз на многоядерных проц-ах

http://nod5.dcmembers.com/scantailor_multi_core.html
Автор: monday2000
Дата сообщения: 08.01.2013 17:10
Я недавно делал одну книжку в Scan Tailor - после долгого перерыва. Всё бы хорошо - но много времени теряется до сих пор в двух местах:

- Зоны картинок
- Распрямление строк

Причина проста - недостаточно совершенны алгоритмы в этих пунктах. Автоматический dewarping в СТ откровенно слаб пока - я им вообще не пользуюсь. Зоны картинок - получаются очень "шероховатыми", а хотелось бы с более-менее прямыми контурами. Кстати - ручной dewarping в СТ - это (при всех недостатках) - здорово! Я им уже вовсю пользуюсь - правда, это очень медленно - зато он позволяет распрямить любой скан - с каким и Book Restorer не справится.

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

Оба исправления касаются ручного dewarping.

1. Когда в окне dewarping создаётся синяя сетка, то на её самой верхней и самой нижней синих горизонтальных линиях рисуется по 5 красных точек. Это неудобно - мне нужны лишь 2 - самая левая и самая правая, остальные 3 я всегда вручную убираю - прежде чем ставить свои красные точки. Вот код исправления:

C:\build\scantailor-0.9.11.1\filters\output\DewarpingView.cpp

void
DewarpingView::initNewSpline(XSpline& spline, QPointF const& p1, QPointF const& p2)
{
    QLineF const line(p1, p2);
    spline.appendControlPoint(line.p1(), 0);
    //spline.appendControlPoint(line.pointAt(1.0/4.0), 1);
    //spline.appendControlPoint(line.pointAt(2.0/4.0), 1);
    //spline.appendControlPoint(line.pointAt(3.0/4.0), 1);
    spline.appendControlPoint(line.p2(), 0);
}

закомментировано создание 3 ненужных мне красных точек

2. Когда в режиме распрямления строк "Отключено" начинаешь вручную менять положение синих линий / красных точек - то режим распрямления строк не переключается при этом сам с "Отключено" на "Вручную". Приходится потом лезть в диалог и переключать самому - а это лишние телодвижения. Повторенные на десятках страниц, они начинают раздражать. В общем, вот код исправления:

C:\build\scantailor-0.9.11.1\filters\output\OptionsWidget.cpp

void
OptionsWidget::distortionModelChanged(dewarping::DistortionModel const& model)
{
    m_ptrSettings->setDistortionModel(m_pageId, model);
    
    // Note that OFF remains OFF while AUTO becomes MANUAL.
    /*if (m_dewarpingMode == DewarpingMode::AUTO)*/ {
    
        m_ptrSettings->setDewarpingMode(m_pageId, DewarpingMode::MANUAL);
        m_dewarpingMode = DewarpingMode::MANUAL;
        updateDewarpingDisplay();
    }
}

Закомментировано мною - комментариями вида /* .... */

Предлагаю DikBSD подумать о включении этих исправлений в свой Scan Tailor Plus.

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

А ещё было бы классно - переносить результат сформированного вручную задания на ручной dewarping на произвольную страницу. Но это уже совсем сложно пока для меня. А сколько бы это зато времени могло бы сэкономить!
Автор: monday2000
Дата сообщения: 09.01.2013 20:43
Tulon подсказал мне, как реализовать двигание всей синей линии за крайнюю красную точку. Вот его советы:

Цитата:
Код находится в классе InteractiveXSpline. Воздействие красных точек и мыши обрабатывается классами DraggablePoint и ObjectDragHandler. Когда точку тянут, кто-то из этих двух вызывает через callback метод InteractiveXSpline::controlPointMoveRequest(). Чтобы реагировать на зажатый Ctrl, первое что приходит в голову, это:

Добавить маску кнопок-модификаторов (она передается в QMouseEvent) в сигнатуру DraggablePoint::MoveRequestCallback и соответственно InteractiveXSpline::controlPointMoveRequest(). Кроме того, придется еще и изменить протокол взаимодействия DraggableObject (класс-родитель DraggablePoint) с ObjectDragHandler, также чтобы передавать эту самую маску.

К сожалению, это пока слишком сложно для меня оказалось. Там используется библиотека boost, которую я вообще не знаю. Я обломался пока на пункте "Добавить маску кнопок-модификаторов (она передается в QMouseEvent) в сигнатуру DraggablePoint::MoveRequestCallback" - стоит только изменить число параметров callback метода InteractiveXSpline::controlPointMoveRequest(), как сразу перестаёт работать boost-регистрация этого callback метода - и как это наладить - пока не знаю.

Но я нашёл гораздо более простой вариант решения нужной мне задачи. Вместо отслеживания нажатой кнопки Ctrl, я решил отслеживать состояние клавиши Caps Lock. Это оказалось совсем просто реализовать. Мне повезло - класс InteractiveXSpline уже содержал метод onKeyPressEvent - его-то я и использовал. Вот мои исправления:


Цитата:
C:\build\scantailor-0.9.11.1\interaction\InteractiveXSpline.h

class InteractiveXSpline : public InteractionHandler
{
.......
protected:
......
bool m_caps_lock; // добавил флаг состояния Caps Lock

C:\build\scantailor-0.9.11.1\interaction\InteractiveXSpline.cpp

InteractiveXSpline::InteractiveXSpline()
:    m_modifiedCallback(NoOp()),
........
    m_caps_lock(false), // в конструкторе инициализирую своё добавленное поле как false


void
InteractiveXSpline::onKeyPressEvent(
    QKeyEvent* event, InteractionState& interaction)
{
............
    switch (event->key()) {
        case Qt::Key_Delete:
        case Qt::Key_D:
..............
    }
    //начало добавления
    switch (event->key()) {
        case Qt::Key_CapsLock:
            m_caps_lock = !m_caps_lock; break;
// ничего хитрого - просто при нажатии на Caps Lock инвертируем значение моего поля
    }
    //конец добавления
    
}

и, наконец, самый сложный кусок кода в этой фиче:

void
InteractiveXSpline::controlPointMoveRequest(int idx, QPointF const& pos)
{
..............
        // An endpoint was moved. Instead of moving it on its own,
...............
//m_spline.moveControlPoint(i, pt + origin); // это я закомментировал оригинальную строку
// начало моего добавления
if (!m_caps_lock) // default behavior                
m_spline.moveControlPoint(i, pt + origin);
else // Caps lock is currently set
{                
Vec2d shift_y = storage_pt - old_pos; // вектор разницы по высоте между старой и новой
// позицией перетаскиваемой крайней точки
QPointF new_position = m_spline.controlPointPosition(i) + shift_y;    // новая позиция каждой красной точки (отличной от перетаскиваемой) данной синей линии                    
new_position.setX(m_spline.controlPointPosition(i).x());     // а это я не разрешаю при
// перетаскивании синей линии вверх-вниз случайно вихляться ей при этом влево-вправо - рука ведь не может строго вверх-вниз ходить.
m_spline.moveControlPoint(i, new_position); // собственно сдвигаю каждую красную точку
}
// конец моего добавления

Теперь работа с новой фичей выглядит так: открыв окно dewarping с синей сеткой, я нажимаю Caps Lock и, ухватив мышкой крайнюю красную точку, двигаю всю её синюю линию вверх-вниз - сколько мне надо. Затем опять нажимаю Caps Lock (сбрасываю его), и после этого поведение синей сетки становится прежним.

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

Добавлено:
Исправил в шапке "Дистрибутивы, фотки, дополнения [?]" на "Дистрибутивы, форки, дополнения [?]".

Добавлено:
Если кто хочет опробовать мои правки в Scan Tailor - вот собранный мною СТ:

http://rghost.ru/42871731 (4.5 МБ)
Автор: Dashout
Дата сообщения: 09.01.2013 22:01
monday2000
Мысли у тебя хорошие, и намерения тоже!
Но, не еби мозги!!! , открой новую ветку и реформируй!
не цепляйся к подписчикам Тулона!!!
начни новую тему и делай доброе дело...
Автор: alpopo
Дата сообщения: 09.01.2013 22:36
monday2000
Будем пробовать
Крикунов без мозгов не слушай
Автор: amaid
Дата сообщения: 10.01.2013 11:45
monday2000
Пробовал выравнивать строки в ST, толком не получилось, FR 9 дает получше результат (причем автоматом). Хотелось бы видеоурок поглядеть, что ли.
Автор: monday2000
Дата сообщения: 10.01.2013 19:46
Dashout
Извините, что я столь сильно подействовал на Ваши нежные мозги.

Цитата:
не цепляйся к подписчикам Тулона!!!

А кто это такие - "подписчики Тулона?"
alpopo
Я сегодня уже сам попробовал. Вроде чуть легче с этими исправлениями dewarping делать - всё же чуть меньше кликов мышью делать (при dewarping).
amaid

Цитата:
Пробовал выравнивать строки в ST, толком не получилось,

Я не использую автоматический dewarping в СТ - нет толку от него (по большому счету; отдельные сканы ничего получаются изредка). А вот ручной dewarping, хотя и трудноват в использовании, всё же даёт изумительные результаты - полное выпрямление любых искривлений! Красные точки, правда, расставлять вручную сложновато - они взаимозависимы как-то, тронешь одну - сдвигаются соседние - в этом вся трудность. Но приноровиться к этому вполне можно.

Цитата:
Хотелось бы видеоурок поглядеть, что ли.

А видеоурок есть - сделанный Tulon'ом. Даже 3 видеоурока - см. в шапке
Цитата:
Видеоуроки и скринкасты новых функций СТ от Tulona
- я по ним осваивал dewarping в СТ.

Вообще, какой автоматический dewarping ни возьми - ни один не сравнится по качеству с ручным dewarping в СТ. После ручного вообще даже не видно, что картинка была изначальна искривлена! Автоматический так не умеет, некое малое остаточное искривление всё же остаётся.

Tulon молодец, отвечает на мои письма. Сказал, что он вообще потерял интерес к СТ. DikBSD написал, что не может по состоянию здоровья заниматься своим клоном. Остался лишь автор СТ Enhanced - Tulon сказал, что он активно работает над своим клоном.

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

Смотрел я фичу, когда автовыделение зон обводится прямоугольником (в Plus и в Enhanced). Мне не понравилось - из-за "выростов" и "зазубрин" описанный прямоугольник будет слишком большим - как раз на размер этих зазубрин. Вот если бы был алгоритм, позволяющий "срезать" такие зазубрины - тогда другое дело. Разве что "каверны" такой алгоритм авто-заполняет - это да, это полезно.

Лучше бы кто-то сделал просто обведение зон прямоугольником - куда как полезней ИМХО.

Добавлено:
А вообще, на мой взгляд, заниматься мелочным модифицированием СТ не так уж и сложно. СТ собирается из исходников на раз-два - точно по инструкции, прилагаемой внутри исходников - вот она: http://scantailor.git.sourceforge.net/git/gitweb.cgi?p=scantailor/scantailor;a=blob_plain;f=packaging/windows/readme.ru.txt Найти где там что исходниках - реально, Tulon ещё подскажет, если надо.

Просто не надо бояться лезть в исходники СТ.

Добавлено:
Добавил в шапку ссылку:

Цитата:
Как собрать Scan Tailor из исходных кодов под Windows

Автор: monday2000
Дата сообщения: 11.01.2013 20:40
Я смог подправить свою фичу "двигание всей синей линии за крайнюю красную точку" - убрал вариант с Caps Lock и сделал-таки через нажатый Ctrl. Мне помог Tulon - он мне практически всё объяснил, что и как делать.

Вот исправления в исходном коде:

Код: C:\build\scantailor-0.9.11.1\interaction\DraggableObject.h

class DraggableObject
{
public:
.........

virtual void dragContinuation(QPointF const& mouse_pos) {    
        m_dragContinuationCallback(mouse_pos);
    }
// добавляем перегруженную функцию - с маской нажатого Ctrl
virtual void dragContinuation(QPointF const& mouse_pos, Qt::KeyboardModifiers mask) {}
.........
}

C:\build\scantailor-0.9.11.1\interaction\DraggablePoint.h

class DraggablePoint : public DraggableObject
{
public:
........
typedef boost::function<
    //void (QPointF const&)
    void (QPointF const&, Qt::KeyboardModifiers mask)
> MoveRequestCallback;

............
//virtual void dragContinuation(QPointF const& mouse_pos);
virtual void dragContinuation(QPointF const& mouse_pos, Qt::KeyboardModifiers mask);
...........
protected:
............
//virtual void pointMoveRequest(QPointF const& widget_pos) {
virtual void pointMoveRequest(QPointF const& widget_pos, Qt::KeyboardModifiers mask) {
    //m_moveRequestCallback(widget_pos);
    m_moveRequestCallback(widget_pos, mask);
}
..........
}

C:\build\scantailor-0.9.11.1\interaction\DraggablePoint.cpp

void
//DraggablePoint::dragContinuation(QPointF const& mouse_pos)
DraggablePoint::dragContinuation(QPointF const& mouse_pos, Qt::KeyboardModifiers mask)
{
    //pointMoveRequest(mouse_pos + m_pointRelativeToMouse);
    pointMoveRequest(mouse_pos + m_pointRelativeToMouse, mask);
}

C:\build\scantailor-0.9.11.1\interaction\ObjectDragHandler.cpp

void
ObjectDragHandler::onMouseMoveEvent(
    QMouseEvent* event, InteractionState& interaction)
{
    if (interaction.capturedBy(m_interaction)) {
        //m_pObj->dragContinuation(QPointF(0.5, 0.5) + event->pos());
        m_pObj->dragContinuation(QPointF(0.5, 0.5) + event->pos(), event->modifiers());
    }
}

C:\build\scantailor-0.9.11.1\interaction\InteractiveXSpline.h

class InteractiveXSpline : public InteractionHandler
{
...........
private:
...........
//void controlPointMoveRequest(int idx, QPointF const& pos);
void controlPointMoveRequest(int idx, QPointF const& pos, Qt::KeyboardModifiers mask);
...........
}

C:\build\scantailor-0.9.11.1\interaction\InteractiveXSpline.cpp

void
InteractiveXSpline::setSpline(XSpline const& spline)
{
..........

new_control_points[i].point.setMoveRequestCallback(
    //boost::bind(&InteractiveXSpline::controlPointMoveRequest, this, i, _1)
    boost::bind(&InteractiveXSpline::controlPointMoveRequest, this, i, _1, _2) // это самое сложное место - но мне его Tulon подсказал
..........
}

void
//InteractiveXSpline::controlPointMoveRequest(int idx, QPointF const& pos)
InteractiveXSpline::controlPointMoveRequest(int idx, QPointF const& pos, Qt::KeyboardModifiers mask)
{
........

(mc(mat, 2, 2)*mc(pt, 2, 1)).write(pt);    
//m_spline.moveControlPoint(i, pt + origin); // original line - now commented
//начало добавления
if (mask != Qt::ControlModifier) // default behavior
    m_spline.moveControlPoint(i, pt + origin);
else // Control key is currently pressed
{                
    Vec2d shift_y = storage_pt - old_pos;                
    QPointF new_position = m_spline.controlPointPosition(i) + shift_y;                
    new_position.setX(m_spline.controlPointPosition(i).x());                
    m_spline.moveControlPoint(i, new_position);
}
//конец добавления
}
} else {
.........
}
Автор: Dashout
Дата сообщения: 11.01.2013 20:49
ну не смешно...?
Моська и слон (басня Крылова)
ну чуть исправите Вы, но ведь не кардинально?
Конечно нужно дорабатывать СТ, ну откройте новую ветку...!!!, а в эту ветку только результаты, варианты, версии...
зная Вашу писучесть (в хорошем смысле слова), моем мнение - не нужно забивать эту ветку...
Пожалуйста...
Автор: iit512
Дата сообщения: 13.01.2013 14:09

Цитата:
Работает это так: В окне dewarping, там, где синяя сетка, можно, нажав и удерживая Ctrl, двигать за крайнюю красную точку всю её горизонтальную красную линию. Это даёт небольшое удобство при ручном dewarping.

Вы не хотите написать об этом автору ScanTailor Enhanced? Было бы здОрово интегрировать Ваш патч туда.
Автор: monday2000
Дата сообщения: 13.01.2013 14:46
Dashout

Цитата:
моем мнение - не нужно забивать эту ветку...

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

Что ещё здорово в СТ - то, что там исходные коды обильно снабжены авторскими комментариями. Без этого была бы вообще труба - а так можно довольно быстро понять, что там к чему.

ИМХО сейчас с СТ вообще уже нечего больше делать, кроме как модифицировать его исходники: использование программы все давно изучили, Tulon новые фичи не делает. Чем же ещё теперь-то с СТ заниматься?

Я предлагаю всем желающим попробовать хотя бы собрать СТ из исходников под Windows. Это очень просто - инструкция в шапке - там всё буквально разжёвано. Единственное замечание: не стоит использовать Qt 5 при сборке СТ (а только Qt 4).

Добавлено:
Пункт "Патчим libtiff" я не делал - для простоты.
Автор: LazyKent
Дата сообщения: 13.01.2013 15:26
Присоединяюсь к просьбе добавить патч к ScanTailor Enhanced.
Автор: monday2000
Дата сообщения: 13.01.2013 18:56
LazyKent
Да можете и сами его попросить. Я же тут выложил подробное описание моего исправления - больше мне нечего добавить туда.
Автор: F777
Дата сообщения: 14.01.2013 00:20
monday2000

Цитата:
Лучше бы кто-то сделал просто обведение зон прямоугольником

Может Вы и осилите?
Очень не хватает такой возможности.
Автор: LonerDergunov
Дата сообщения: 14.01.2013 03:40

Цитата:
Лучше бы кто-то сделал просто обведение зон прямоугольником - куда как полезней ИМХО.

И снова я напомню свою давнюю просьбу - сделать автообведение зон прямоугольником в Picture Zones (например, кликаем на точку, зажимаем хоткей - например Shift, тянем мышу - получаем прямоугольную зону). Картинки обычно имеют форму близкую к прямоугольной, а если ставить четыре точки вручную (как сейчас) - то как правило получается кривоватая зона.
Автор: DikBSD
Дата сообщения: 14.01.2013 06:43
Пишу запоздало...
Я перестал участвовать в разработке ветки plus по причине того, что полу-ослеп. Глаза уже не те. увы. За компьютер редко сажусь.
Все последние коды - в ветке plus, если найдутся желающие "подхватить" разработку этой ветки и вливать в нее код (Tulon может дать доступ) - будет прекрасно!
Сожалею, если не оправдал чьи-нибудь надежды...
Автор: denver 22
Дата сообщения: 14.01.2013 07:48
DikBSD
Вы молодец! Внесли свой полезный вклад в проект. Жаль, что со здоровьем так. Берегите себя. Ещё молодой!


Цитата:
Вообще-то я по большей мере хотел продемонстрировать, что модифицирование программного кода СТ - не так уж и сложно, многие из нас вполне могли бы это делать

monday2000, да дело в том, что почти никто, кто занимается книгопроизводством, умеет программировать. Вы - редкий случай. Кто реально может (пример - DikBSD), их и уговаривать не надо .
Tulon сделал всю основную работу. А вы, имея знания в программировании, можете по мелочам допилить то, что вам кажется нужным. И это здорово!
Я (и многие другие) с удовольствием бы помогли), но время потраченное на изучение программирования с нуля не перекроет тот минимум, что мы сможем внести в этот проект.

Господа, в шапке есть только ссылки на альтернативные ветки сабжа. Но нет обобщенных описаний чем они отличаются от оригинала. Есть ли у кого-нибудь такие описания? Касательно Plus и Enhanced. В частности, в Plus вносилось что-то из Enhanced. Но Enhanced похоже развивается до сих пор. Может у него есть своя ветка на каком-то форуме? Прошу дать ссылку.
Так, в README у Plus есть Changelog. Есть ли он в Enhanced?

Добавлено:
Вот так всегда - стоит что-то спросить, сам сразу находишь ответ.Спасибо Вам, что есть кого спросить . Ветка Enhanced активно развивается!
Тогда спрошу по-другому: автор ветки Enhanced - русскоязычный?
Автор: LazyKent
Дата сообщения: 14.01.2013 08:19
Вроде, автор ветки Enhanced — чех.
Автор: denver 22
Дата сообщения: 14.01.2013 08:23
Да, похоже. Petr Kovar.
Автор: monday2000
Дата сообщения: 14.01.2013 18:48
Я добавил в (свою копию) Scan Tailor генерацию разделённых субсканов - для "смешанных" (Mixed) сканов. Т.е. это то, для чего я сделал в своё время программу ST Split - которая теперь становится (наконец-таки) ненужной. Инструкция по модификации исходного кода здесь: http://www.djvu-scan.ru/forum/index.php?topic=1137.msg5378#msg5378 .

Работает это примерно так:

В (моей копии) Scan Tailor появился новый пункт в меню: Инструменты - Split mixed. Это - помечаемый пункт меню, т.е. на нём можно выставить галку (обозначающую как бы "включено").

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

Разделение сканов осуществляется функцией, вызываемой (в случае, если стоит галка Split mixed) непосредственно перед записью готового обработанного скана в выходной TIF-файл. Т.е. другими словами, разделение субсканов происходит самой последней операцией - прямо перед записью в выходной файл. Передний субскан записывается вместо обычного скана - под тем же именем, только (естественно) в чёрно-белом режиме, в папке out создаётся папка "pic", и туда записываются соответствующие задние субсканы - одноимённые передним (и в том же режиме цветности).

Всё это почти не тестировалось - так что глюки и падения не исключаются. Сделано всё это на скорую руку по принципу "лишь бы работало" - так что если что не так - извиняйте.

Вот собранный с этой фичей Scan Tailor:

http://rghost.ru/43030118 (4,51 МБ)

Можно делать так: обработать сканы как обычно, затем закрыть задание, удалить папку out, выставить галку Split mixed, открыть задание, запустить стадию вывода - чтобы сформировать разделённые сканы. А можно изначально поставить эту галку - и вперёд. Т.е. варианты возможны - галка влияет лишь непосредственно на операцию записи в файл каждого готового файла. Взведённость галки в файл задания, разумеется, не записывается - это была бы отдельная песня.

Добавлено:
denver 22

Цитата:
Но нет обобщенных описаний чем они отличаются от оригинала. Есть ли у кого-нибудь такие описания?

http://sourceforge.net/projects/scantailor/files/scantailor-devel/enhanced/
http://sourceforge.net/projects/scantailor/files/scantailor-devel/plus/0.9.11-2012-03-06/
Прокрутить обе ссылки в самый низ страницы.
Добавил ссылки в шапку.


Цитата:
да дело в том, что почти никто, кто занимается книгопроизводством, умеет программировать.

А что там уметь? Одну книжку прочитать - по языку С++ - и всё. Ну 2 максимум. Что непонятно - всё можно найти в Интернете.
Автор: amaid
Дата сообщения: 14.01.2013 21:22

Цитата:
"генерацию разделённых субсканов"

это када картинки отдельно от текста, чтоль? типа ST Separator (пользуюсь)? а чем потом вставлять картинки обратно? Imager годится?

с удовольствием пользовался бы версией от monday2000, с умным распрямлением строк, но не нашел в ней функции Picture Shape (картинки выделяются прямоугольниками в смешанном режиме), без которой мне никак.

и еще просьба: сделайте в списке режимов вывода 500 dpi, если не трудно, плиз (ужас как надоело ручками вбивать, и потом: 300 - 400 - 600, явно не хватает чего-то в этой прогрессии, не находите?)
Автор: monday2000
Дата сообщения: 14.01.2013 21:57
amaid

Цитата:
это када картинки отдельно от текста, чтоль? типа ST Separator (пользуюсь)

Да. Имеется в виду вот это: http://djvu-soft.narod.ru/scan/diagram.htm "2а этап. Метод разделённых сканов".

Цитата:
а чем потом вставлять картинки обратно? Imager годится?

DjVu Imager'ом. Или его аналогом - если он есть или будет. Это уже дело десятое, главное - разделить сканы внутри СТ.

Цитата:
но не нашел в ней функции Picture Shape (картинки выделяются прямоугольниками в смешанном режиме), без которой мне никак.

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

Добавлено:

Цитата:
и еще просьба: сделайте в списке режимов вывода 500 dpi, если не трудно, плиз (ужас как надоело ручками вбивать, и потом: 300 - 400 - 600, явно не хватает чего-то в этой прогрессии, не находите?)

Не, я не планировал взяться вместо Тулона быть разработчиком СТ. Я хотел всем показать, насколько просто можно модифицировать СТ - и всё.

Однако по-любому, 500 dpi нужно только Вам одному - а другим будет только мешать, так что внедрять надо только самые бесспорно нужные всем фичи. Так и Tulon думает, и я с ним полностью согласен. Мне даже большинство не нравится из добавленного в Plus и Enhanced. Не хотелось бы, чтобы СТ из лаконичной программы превратился в помойку как кое-какая другая программа.

Добавлено:
Кстати, сделанное мною разделение смешанных сканов в СТ - возможно не окончательное, если окажется, что его можно и нужно как-то улучшить - я, быть может, и сделаю это - смотря по обстановке. Странно только, почему Tulon сам в своё время не захотел эту фичу сделать.
Автор: amaid
Дата сообщения: 14.01.2013 22:57
мне казалось, что добавить строчку к списку режимов просто, как два пальца, - ну если нет, тогда что ж.

Цитата:
Однако по-любому, 500 dpi нужно только Вам одному

завидую юношеской смелости ваших суждений
не очень понятно только, почему, к примеру, 400 dpi нужно всем и каждому, а вот 500 всем и каждому будет мешать
Автор: zhe_zho
Дата сообщения: 15.01.2013 02:22

Цитата:
а вот 500 всем и каждому будет мешать

amaid, это нестандартное разрешение, приняты как стандартные: 100, 150, 200, 300, 400, 600.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061

Предыдущая тема: CmCkA v4


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.