scantailor - Scan Tailor is an interactive post-processing tool for scanned pages.

Overview

Scan Tailor - scantailor.org

ScanTailor logo from scantailor.org

This project is no longer maintained, and has not been maintained for a while.

About

Scan Tailor is an interactive post-processing tool for scanned pages. It performs operations such as:

You give it raw scans, and you get pages ready to be printed or assembled into a PDF or DJVU file. Scanning, optical character recognition, and assembling multi-page documents are out of scope of this project.

Scan Tailor is Free Software (which is more than just freeware). It’s written in C++ with Qt and released under the General Public License version 3. We develop both Windows and GNU/Linux versions.

History and Future

This project started in late 2007 and by mid 2010 it reached production quality.

In 2014, the original developer Joseph Artsimovich stepped aside, and Nate Craun (@ncraun) took over as the new maintainer.

For information on contributing and the longstanding plan for the project, please see the Roadmap wiki entry.

For any suggested changes or bugs, please consult the Issues tab.

Usage

Scan Tailor is being used not just by enthusiasts, but also by libraries and other institutions. Scan Tailor processed books can be found on Google Books and the Internet Archive.

  • Prolog for Programmers. The 47.3MB pdf is the original, and the 3.1MB pdf is after using Scan Tailor. The OCR, Chapter Indexing, JBIG2 compression, and PDF Binding were not done with Scan Tailor, but all of the scanned image cleanup was. [1]
  • Oakland Township: Two Hundred Years by Stuart A. Rammage (also available: volumes 2, 3, 4.1, 4.2, 5.1, and 5.2) [2]
  • Herons and Cobblestones: A History of Bethel and the Five Oaks Area of Brantford Township, County of Brant by the Grand River Heritage Mines Society [2]

Installation and Tips

Scanning Tips, Quick-Start-Guide, and complete Usage Guide, including installation information (via the installer or building from from source) can be found in the wiki!

Additional Links

Comments
  • Bugfix: scantailor-cli doesnt honor color-mode settings from projectfile...

    Bugfix: scantailor-cli doesnt honor color-mode settings from projectfile...

    .... It alwas convertes pictures to black and white instead of color

    Found when using DIYBookscanner/spreads when manually editing via gui and letting spreads continue running scantailor-cli --start-filter=6 /tmp/spreads.TaZcoK/tmpuNi7DS-0.ScanTailor /tmp/st-outEvBCSO

    opened by mumme74 2
  • Only set options from command-line if they were explicitely specified

    Only set options from command-line if they were explicitely specified

    This patch fixes an issue with scantailor-cli that caused settings from the configuration file to be overwritten by the command-line defaults. (see https://github.com/DIYBookScanner/spreads/pull/112#issuecomment-48022697) This occured due to the fact that QMap<QString, QString> m_options in the CommandLine class would set a key once it was queried.

    As an example, the following method would be called before a later call to hasColorParams, which checks if an option was set from the commandline by calling contains on the QMap:

    output::ColorParams::ColorMode
    CommandLine::fetchColorMode()
    {
        // This seems to set "color-mode" in the QMap
        QString cm = m_options["color-mode"].toLower();
    
        if (cm == "color_grayscale")
            return output::ColorParams::COLOR_GRAYSCALE;
        else if (cm == "mixed")
            return output::ColorParams::MIXED;
    
        return output::ColorParams::BLACK_AND_WHITE;
    }
    

    When the program would later check for a user-supplied color parameter from the command-line via hasColorParams it would always return true, even though the --color-mode flag was never set.

    As a solution, the new code now only calls fetch* methods if the corresponding has* method returns true.

    opened by jbaiter 2
  • fix crash if output has no margins

    fix crash if output has no margins

    resolves #210 ST crashes on line 255.

    The problem must be with rounding rectangles in float coordinates to rectangles in integer coordinates. In some circumstances it rounds to -1 pixel for output rect and to +1 pixel for working rect. Working rect size becomes 1 pixel bigger than output page size and everything collapses. And non-zero margins seems to save ST from that. toAlignedRect() is using ceil() instead of round() for float coordinates conversion so the sizes should always match.

    opened by trufanov-nok 1
  • Fix compilation with GCC 6

    Fix compilation with GCC 6

    GCC 6 defaults to a newer C++ standard version. C++11 introduced a new overload for push_back so it is now sometimes necessary to specify which overload is required. C++11 also introduced std::bind so we need to specify the namespace when using boost::lambda::bind.

    opened by jascrain 1
  • respect CFLAGS and CXXFLAGS

    respect CFLAGS and CXXFLAGS

    Setting CMAKE_C_FLAGS and CMAKE_CXX_FLAGS without including their existing contents causes any provided CFLAGS and/or CXXFLAGS to be ignored.

    These should be respected, if set (distributions commonly have defaults they expect to be used). The $default_flags_ tweak is just to avoid duplication - distros will typically set CXXFLAGS to include all the same stuff as CFLAGS, so if you include CFLAGS in CMAKE_C_FLAGS then include CMAKE_C_FLAGS in CMAKE_ CXX_FLAGS, you'll wind up with lots of flags repeated.

    opened by AdamWill 1
  • Copy Featured branch into main scantailor project

    Copy Featured branch into main scantailor project

    Hi,

    I couldn't find a repository for the "featured" branch of scantailor, so I've attempted to recreate it based on the tarballs I had available, specifically:

    scantailor-featured-2013.02.15.tar.gz scantailor-featured-2013.04.10.tar.gz scantailor-featured-2013.05.31.tar.gz

    I've tried to make it one commit per "feature" as listed at http://sourceforge.net/projects/scantailor/files/scantailor-devel/featured/ but in some cases there were changes to a feature after the first release containing that feature, so there might be a second commit later on. They're all labelled with the feature name in the commit in any case. I've tagged the commits corresponding to the releases too:

    scantailor-featured_2013.02.15 scantailor-featured_2013.04.10 scantailor-featured_2013.05.31

    I don't suggest merging this into master, rather that it'd be good to copy it over to the main scantailor repository to make it easier to cherry-pick any of the features for the main branch.

    Thanks, Andy

    opened by rockclimb 1
  • Enhanced branch upd

    Enhanced branch upd

    These 3 commits were "cherry-picked" from master branch and applied to enhanced branch. They are required to build vanilla enhanced branch with up-to-date toolchain (boost, gcc). The description of a last one commit is a bit spoiled.

    opened by trufanov-nok 0
  • Tiff compression may be changed in settings file

    Tiff compression may be changed in settings file

    This PR addresses #201 and demonstrates settings file usage. It contains 3 commits:

    1. Enforcing settings storage as ini file among platforms. Which is also submitted standalone in #266
    2. Fancy static helper class that allows easily call callback function at application start to make sure settings file contains hints. As Qt settings file implementation strip outs comments.
    3. Tiff compression change implementation based on settings file. 2 commits above allows to implement it with only changing one tiff cpp module.

    As for setting itself, you'll find following lines in Scan Tailor.ini:

    [tiff]
    compressionMethod-hint="Tiff compression method may take following values: NONE, CCITTRLE, CCITTFAX3, CCITT_T4, CCITTFAX4, CCITT_T6, LZW, OJPEG, JPEG, T85, T43, NEXT, CCITTRLEW, PACKBITS, THUNDERSCAN, IT8CTPAD, IT8LW, IT8MP, IT8BL, PIXARFILM, PIXARLOG, DEFLATE, ADOBE_DEFLATE, DCS, JBIG, SGILOG, SGILOG24, JP2000, LZMA. Default value: LZW. Note: not all methods may be implemented by libtiff. The error messages are printed to console."
    compressionMethod=LZW
    

    I've tried some values - NONE and DEFLATE works. Several, like JP2000, wasn't implemented in my system. JPEG complains on incompatible image settings set up. The error messages are shown in console. Scan Tailor's GUI show no error dialogs in case of problems - just stops doing anything without refreshing page thumbnail image.

    opened by trufanov-nok 0
  • Fix build with boost 1.60

    Fix build with boost 1.60

    Always use fully qualified boost::lambda::{bind,_1,_2}

    With boost 1.60 there's a namespace conflict between boost::bind and boost::lambda::bind and placeholders are no longer in global namespace, so use fully qualified names for these.

    It is advised to switch away from "using namespace" statements completely.

    opened by AMDmi3 0
  • Fix some German translations.

    Fix some German translations.

    Fixes for some German translations, especially

    • keyboard shortcuts. They were translated, which meant they did not work.
    • “Every other page” was translated as „alle anderen Seiten“. That was wrong. It translates back as “All other pages“, meaning all pages, with the exception of this page. Not what this does.

    There are some other strings i came across that i translated.

    opened by ospalh 0
  • Remove uneccessary call to toGrayscale

    Remove uneccessary call to toGrayscale

    Remove uneccessary call to toGrayscale as darkestGrayLevel() is always used with GrayImage as argument. So no need to create QImage. Just making sure GrayImage is passed to darkestGrayLevel() by changing type of argument in function declaration.

    opened by trufanov-nok 0
  • fixed incorrect link for

    fixed incorrect link for "Heroes and Cobblestones"

    Corrected the link to the book "Heroes and Cobblestones". The initial link "http://books.google.com/books?printsec=frontcover&id=o4Q2OlVl61MC" was erroneously pointing to "Oakland Township: Two Hundred Years". The correct link is "http://books.google.com.ng/books?printsec=frontcover&id=sQj6XPKB6ZAC". You can check it out :)

    opened by El-Nazy 0
  • Fix detection of second chance components

    Fix detection of second chance components

    That seems to be a bug. I've tested and found that there are pages when have_anchored_to_small_but_not_big got true but then was reset to false. After the proposed fix the despeckle results are more accurate: 3

    opened by trufanov-nok 0
  • Generate and upload AppImage

    Generate and upload AppImage

    This PR, when merged, will compile this application on Travis CI upon each git push, and upload an AppImage to your GitHub Releases page.

    Providing an AppImage would have, among others, these advantages:

    • Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
    • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
    • No unpacking or installation necessary
    • No root needed
    • No system libraries changed
    • Works out of the box, no installation of runtimes needed
    • Optional desktop integration with appimaged
    • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
    • Can optionally GPG2-sign your AppImages (inside the file)
    • Works on Live ISOs
    • Can use the same AppImages when dual-booting multiple distributions
    • Can be listed in the AppImageHub central directory of available AppImages
    • Can double as a self-extracting compressed archive with the --appimage-extract parameter
    • No repositories needed. Suitable/optimized for air-gapped (offline) machines

    Here is an overview of projects that are already distributing upstream-provided, official AppImages.

    PLEASE NOTE: For this to work, you need to set up GITHUB_TOKEN in Travis CI for this to work; please see https://github.com/probonopd/uploadtool.

    If you have questions, AppImage developers are on #AppImage on irc.freenode.net.

    opened by probonopd 3
Releases(RELEASE_0_9_12_1)
Primary QPDF source code and documentation

QPDF QPDF is a command-line tool and C++ library that performs content-preserving transformations on PDF files. It supports linearization, encryption,

QPDF 2.2k Jan 04, 2023
Code for the paper STN-OCR: A single Neural Network for Text Detection and Text Recognition

STN-OCR: A single Neural Network for Text Detection and Text Recognition This repository contains the code for the paper: STN-OCR: A single Neural Net

Christian Bartz 496 Jan 05, 2023
This is the open source implementation of the ICLR2022 paper "StyleNeRF: A Style-based 3D-Aware Generator for High-resolution Image Synthesis"

StyleNeRF: A Style-based 3D-Aware Generator for High-resolution Image Synthesis StyleNeRF: A Style-based 3D-Aware Generator for High-resolution Image

Meta Research 840 Dec 26, 2022
Official PyTorch implementation for "Mixed supervision for surface-defect detection: from weakly to fully supervised learning"

Mixed supervision for surface-defect detection: from weakly to fully supervised learning [Computers in Industry 2021] Official PyTorch implementation

ViCoS Lab 169 Dec 30, 2022
An OCR evaluation tool

dinglehopper dinglehopper is an OCR evaluation tool and reads ALTO, PAGE and text files. It compares a ground truth (GT) document page with a OCR resu

QURATOR-SPK 40 Dec 20, 2022
Python-based tools for document analysis and OCR

ocropy OCRopus is a collection of document analysis programs, not a turn-key OCR system. In order to apply it to your documents, you may need to do so

OCRopus 3.2k Dec 31, 2022
Ddddocr - 通用验证码识别OCR pypi版

带带弟弟OCR通用验证码识别SDK免费开源版 今天ddddocr又更新啦! 当前版本为1.3.1 想必很多做验证码的新手,一定头疼碰到点选类型的图像,做样本费时

Sml2h3 4.4k Dec 31, 2022
2 telegram-bots: for image recognition and for text generation

💻 📱 Telegram_Bots 🔎 & 📖 2 telegram-bots: for image recognition and for text generation. About Image recognition bot: User sends a photo and bot de

Marina Polukoshko 1 Jan 27, 2022
An unofficial implementation of the paper "AutoVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss".

AutoVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss This is an unofficial implementation of AutoVC based on the official one. The reposi

Chien-yu Huang 27 Jun 16, 2022
scene-linear test images

Scene-Referred Image Collection A collection of OpenEXR Scene-Referred images, encoded as max 2048px width, DWAA 80 compression. All exrs are encoded

Gralk Klorggson 7 Aug 25, 2022
This is a GUI program which consist of 4 OpenCV projects

Tkinter-OpenCV Project Using Tkinter, Opencv, Mediapipe This is a python GUI program using Tkinter which consist of 4 OpenCV projects 1. Finger Counte

Arya Bagde 3 Feb 22, 2022
Creating a virtual tv using opencv in python3.

Virtual-TV Creating a virtual tv using opencv in python3. In order to run the code follow the below given steps: Make sure the desired videos which ar

Vamsi 1 Jan 01, 2022
Dataset and Code for ICCV 2021 paper "Real-world Video Super-resolution: A Benchmark Dataset and A Decomposition based Learning Scheme"

Dataset and Code for RealVSR Real-world Video Super-resolution: A Benchmark Dataset and A Decomposition based Learning Scheme Xi Yang, Wangmeng Xiang,

Xi Yang 91 Nov 22, 2022
Tracking the latest progress in Scene Text Detection and Recognition: Must-read papers well organized

SceneTextPapers Tracking the latest progress in Scene Text Detection and Recognition: must-read papers well organized Information about this repositor

Shangbang Long 763 Jan 01, 2023
Learning Camera Localization via Dense Scene Matching, CVPR2021

This repository contains code of our CVPR 2021 paper - "Learning Camera Localization via Dense Scene Matching" by Shitao Tang, Chengzhou Tang, Rui Hua

tangshitao 65 Dec 01, 2022
Handwritten Character Recognition using CNN

Handwritten Character Recognition using CNN Problem Definition The main objective of this project is to solve the problem of handwritten character rec

Mohit Kaushik 4 Mar 02, 2022
1st place solution for SIIM-FISABIO-RSNA COVID-19 Detection Challenge

SIIM-COVID19-Detection Source code of the 1st place solution for SIIM-FISABIO-RSNA COVID-19 Detection Challenge. 1.INSTALLATION Ubuntu 18.04.5 LTS CUD

Nguyen Ba Dung 170 Dec 21, 2022
([email protected]) Boosting Co-teaching with Compression Regularization for Label Noise

Nested-Co-teaching ([email protected]) Pytorch implementation of paper "Boosting Co-tea

YINGYI CHEN 41 Jan 03, 2023
Face Detection with DLIB

Face Detection with DLIB In this project, we have detected our face with dlib and opencv libraries. Setup This Project Install DLIB & OpenCV You can i

Can 2 Jan 16, 2022
[ICCV, 2021] Cloud Transformers: A Universal Approach To Point Cloud Processing Tasks

Cloud Transformers: A Universal Approach To Point Cloud Processing Tasks This is an official PyTorch code repository of the paper "Cloud Transformers:

Visual Understanding Lab @ Samsung AI Center Moscow 27 Dec 15, 2022