Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Scan Tailor (часть 2)

Модерирует : gyra, Maz

Maz (10-01-2024 10:45): Scan Tailor (часть 3)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущие части: Часть 1
Scan Tailor


Задача программы - пост-обработка сырых сканов книг для последующей сборки в PDF/DJVU,CBR/CBZ и т.д.
Программа обеспечивает большое удобство для использования, большую интерактивность и не меньшую автоматизацию процесса (по сравнению со СканКромсатором).
Кросс-платформенный (Windows,Mac OS, Linux) проект с открытыми исходниками.


Англоязычный топик по ScanTailor
 
Ветки:
Scan Tailor (ncraun) >>>  последняя версия
Scan Tailor Experimental (Tulon) >>>  последняя версия (обсуждение на DIY Book Scanner)
Scan Tailor Plus (Vadim "DikBSD" Kuznetsov) >>>  последняя версия (отличия от авторской версии)
Scan Tailor Еnhanced (Petr "pejuko" Kovar) >>>  последняя версия (отличия от авторской версии)
Scan Tailor Featured (monday2000) >>>  последняя версия (отличия от авторской версии)
Scan Tailor Universal (trufanov-nok) >>>  последняя версия (обсуждение на publ.lib.ru)
Scan Tailor Advanced (4lex4) >>>  последняя версия (отличия от авторской версии)
Scan Tailor Advanced (актуальный форк) >>>  история версий
 
Документация:
Документация (Wiki) | Зоны картинок в ScanTailor | ScanTailor. Быстрое начало | Видеоуроки и скринкасты новых функций СТ от Tulona
Статья: Scan Tailor. Программа для обработки отсканированных книг
Видеоурок: Создание DjVu с помощью Scan Tailor (зеркало)
Использование Scan Tailor совместно с Djvu Imager (сборка djvu методом разделенных сканов)
Как собрать Scan Tailor из исходных кодов под Windows
Почему нельзя сделать сплошную нумерацию вывода


Автор проекта - Tulon. Почему его здесь не видно? .
DikBSD автор ветки ScanTailor Plus история повторяется.
Юзеры! Будьте скромнее!


Прочие дистрибутивы, форки, дополнения

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:17 17-02-2010 | Исправлено: Maz, 10:43 10-01-2024
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я недавно делал одну книжку в 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 на произвольную страницу. Но это уже совсем сложно пока для меня. А сколько бы это зато времени могло бы сэкономить!

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 19:10 08-01-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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 МБ)

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 22:43 09-01-2013 | Исправлено: monday2000, 22:48 09-01-2013
Dashout



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000
Мысли у тебя хорошие, и намерения тоже!
Но, не еби мозги!!! , открой новую ветку и реформируй!
не цепляйся к подписчикам Тулона!!!
начни новую тему и делай доброе дело...

Всего записей: 1131 | Зарегистр. 15-01-2005 | Отправлено: 00:01 10-01-2013 | Исправлено: Dashout, 01:27 10-01-2013
alpopo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000
Будем пробовать
Крикунов без мозгов не слушай

Всего записей: 1430 | Зарегистр. 02-08-2008 | Отправлено: 00:36 10-01-2013
amaid



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000
Пробовал выравнивать строки в ST, толком не получилось, FR 9 дает получше результат (причем автоматом). Хотелось бы видеоурок поглядеть, что ли.

Всего записей: 575 | Зарегистр. 25-01-2006 | Отправлено: 13:45 10-01-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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


Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 21:46 10-01-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я смог подправить свою фичу "двигание всей синей линии за крайнюю красную точку" - убрал вариант с 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 {
.........
}

А вот и собранный мною СТ с этой фичей: http://rghost.ru/42925385 (4,5 МБ)
 
Работает это так: В окне dewarping, там, где синяя сетка, можно, нажав и удерживая Ctrl, двигать за крайнюю красную точку всю её горизонтальную синюю линию. Это даёт небольшое удобство при ручном dewarping.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 22:40 11-01-2013 | Исправлено: monday2000, 16:50 13-01-2013
Dashout



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну не смешно...?
Моська и слон (басня Крылова)
ну чуть исправите Вы, но ведь не кардинально?
Конечно нужно дорабатывать СТ, ну откройте новую ветку...!!!, а в эту ветку только результаты, варианты, версии...
зная Вашу писучесть (в хорошем смысле слова), моем мнение - не нужно забивать эту ветку...
Пожалуйста...  

Всего записей: 1131 | Зарегистр. 15-01-2005 | Отправлено: 22:49 11-01-2013
iit512

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

Вы не хотите написать об этом автору ScanTailor Enhanced? Было бы здОрово интегрировать Ваш патч туда.

Всего записей: 177 | Зарегистр. 18-05-2005 | Отправлено: 16:09 13-01-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dashout

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

То, что у Вас есть своё мнение - это хорошо. Но не стоит излагать его в такой агрессивной манере. А что касается вопроса о "забивать ветку" - то лучше бы Вам обратить внимание на качество создаваемых Вами текстов (статей и т.п.)...
iit512
Пока ещё не решил - писать ему или нет. И кому писать. Вообще-то я по большей мере хотел продемонстрировать, что модифицирование программного кода СТ - не так уж и сложно, многие из нас вполне могли бы это делать - тем более, что Tulon охотно помогает в этом.
 
Что ещё здорово в СТ - то, что там исходные коды обильно снабжены авторскими комментариями. Без этого была бы вообще труба - а так можно довольно быстро понять, что там к чему.
 
ИМХО сейчас с СТ вообще уже нечего больше делать, кроме как модифицировать его исходники: использование программы все давно изучили, Tulon новые фичи не делает. Чем же ещё теперь-то с СТ заниматься?
 
Я предлагаю всем желающим попробовать хотя бы собрать СТ из исходников под Windows. Это очень просто - инструкция в шапке - там всё буквально разжёвано. Единственное замечание: не стоит использовать Qt 5 при сборке СТ (а только Qt 4).
 
Добавлено:
Пункт "Патчим libtiff" я не делал - для простоты.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 16:46 13-01-2013 | Исправлено: monday2000, 16:47 13-01-2013
LazyKent

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Присоединяюсь к просьбе добавить патч к ScanTailor Enhanced.

Всего записей: 174 | Зарегистр. 17-08-2006 | Отправлено: 17:26 13-01-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LazyKent
Да можете и сами его попросить. Я же тут выложил подробное описание моего исправления - больше мне нечего добавить туда.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 20:56 13-01-2013
F777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000

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

Может Вы и осилите?
Очень не хватает такой возможности.

Всего записей: 2182 | Зарегистр. 23-02-2004 | Отправлено: 02:20 14-01-2013
LonerDergunov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

И снова я напомню свою давнюю просьбу - сделать автообведение зон прямоугольником в Picture Zones (например, кликаем на точку, зажимаем хоткей - например Shift, тянем мышу - получаем прямоугольную зону). Картинки обычно имеют форму близкую к прямоугольной, а если ставить четыре точки вручную (как сейчас) - то как правило получается кривоватая зона.

Всего записей: 2972 | Зарегистр. 11-07-2007 | Отправлено: 05:40 14-01-2013
DikBSD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пишу запоздало...
Я перестал участвовать в разработке ветки plus по причине того, что полу-ослеп. Глаза уже не те. увы. За компьютер редко сажусь.
Все последние коды - в ветке plus, если найдутся желающие "подхватить" разработку этой ветки и вливать в нее код (Tulon может дать доступ) - будет прекрасно!
Сожалею, если не оправдал чьи-нибудь надежды...

Всего записей: 178 | Зарегистр. 23-11-2009 | Отправлено: 08:43 14-01-2013
denver 22

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DikBSD
Вы молодец! Внесли свой полезный вклад в проект. Жаль, что со здоровьем так. Берегите себя. Ещё молодой!
 

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

monday2000, да дело в том, что почти никто, кто занимается книгопроизводством, умеет программировать. Вы - редкий случай. Кто реально может (пример - DikBSD), их и уговаривать не надо .
Tulon сделал всю основную работу. А вы, имея знания в программировании, можете по мелочам допилить то, что вам кажется нужным. И это здорово!
Я (и многие другие) с удовольствием бы помогли), но время потраченное на изучение программирования с нуля не перекроет тот минимум, что мы сможем внести в этот проект.
 
Господа, в шапке есть только ссылки на альтернативные ветки сабжа. Но нет обобщенных описаний чем они отличаются от оригинала. Есть ли у кого-нибудь такие описания? Касательно Plus и Enhanced. В частности, в Plus вносилось что-то из Enhanced. Но Enhanced похоже развивается до сих пор. Может у него есть своя ветка на каком-то форуме? Прошу дать ссылку.
Так, в README у Plus есть Changelog. Есть ли он в Enhanced?
 
Добавлено:
Вот так всегда - стоит что-то спросить, сам сразу находишь ответ.Спасибо Вам, что есть кого спросить . Ветка Enhanced активно развивается!  
Тогда спрошу по-другому: автор ветки Enhanced - русскоязычный?

Всего записей: 602 | Зарегистр. 28-07-2005 | Отправлено: 09:48 14-01-2013
LazyKent

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вроде, автор ветки Enhanced — чех.

Всего записей: 174 | Зарегистр. 17-08-2006 | Отправлено: 10:19 14-01-2013
denver 22

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, похоже. Petr Kovar.

Всего записей: 602 | Зарегистр. 28-07-2005 | Отправлено: 10:23 14-01-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я добавил в (свою копию) 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 максимум. Что непонятно - всё можно найти в Интернете.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 20:48 14-01-2013 | Исправлено: monday2000, 21:12 14-01-2013
amaid



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

это када картинки отдельно от текста, чтоль? типа ST Separator (пользуюсь)? а чем потом вставлять картинки обратно? Imager годится?
 
с удовольствием пользовался бы версией от monday2000, с умным распрямлением строк, но не нашел в ней функции Picture Shape (картинки выделяются прямоугольниками в смешанном режиме), без которой мне никак.
 
и еще просьба: сделайте в списке режимов вывода 500 dpi, если не трудно, плиз (ужас как надоело ручками вбивать, и потом: 300 - 400 - 600, явно не хватает чего-то в этой прогрессии, не находите?)

Всего записей: 575 | Зарегистр. 25-01-2006 | Отправлено: 23:22 14-01-2013 | Исправлено: amaid, 23:25 14-01-2013
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Scan Tailor (часть 2)
Maz (10-01-2024 10:45): Scan Tailor (часть 3)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru