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)
基于图像识别的开源RPA工具,理论上可以支持所有windows软件和网页的自动化

SimpleRPA 基于图像识别的开源RPA工具,理论上可以支持所有windows软件和网页的自动化 简介 SimpleRPA是一款python语言编写的开源RPA工具(桌面自动控制工具),用户可以通过配置yaml格式的文件,来实现桌面软件的自动化控制,简化繁杂重复的工作,比如运营人员给用户发消息,

Song Hui 7 Jun 26, 2022
Simple app for visual editing of Page XML files

Name nw-page-editor - Simple app for visual editing of Page XML files. Version: 2021.02.22 Description nw-page-editor is an application for viewing/ed

Mauricio Villegas 27 Jun 20, 2022
Image Detector and Convertor App created using python's Pillow, OpenCV, cvlib, numpy and streamlit packages.

Image Detector and Convertor App created using python's Pillow, OpenCV, cvlib, numpy and streamlit packages.

Siva Prakash 11 Jan 02, 2022
Détection de créneaux de vaccination disponibles pour l'outil ViteMaDose

Vite Ma Dose ! est un outil open source de CovidTracker permettant de détecter les rendez-vous disponibles dans votre département afin de vous faire v

CovidTracker 239 Dec 13, 2022
WACV 2022 Paper - Is An Image Worth Five Sentences? A New Look into Semantics for Image-Text Matching

Is An Image Worth Five Sentences? A New Look into Semantics for Image-Text Matching Code based on our WACV 2022 Accepted Paper: https://arxiv.org/pdf/

Andres 13 Dec 17, 2022
Controlling Volume by Hand Gestures

This program allows the user to control the volume of their device with specific hand gestures involving their thumb and index finger!

Riddhi Bajaj 1 Nov 11, 2021
Roboflow makes managing, preprocessing, augmenting, and versioning datasets for computer vision seamless.

Roboflow makes managing, preprocessing, augmenting, and versioning datasets for computer vision seamless. This is the official Roboflow python package that interfaces with the Roboflow API.

Roboflow 52 Dec 23, 2022
Convert PDF/Image to TXT using EasyOcr - the best OCR engine available!

PDFImage2TXT - DOWNLOAD INSTALLER HERE What can you do with it? Convert scanned PDFs to TXT. Convert scanned Documents to TXT. No coding required!! In

Hans Alemão 2 Feb 22, 2022
Run tesseract with the tesserocr bindings with @OCR-D's interfaces

ocrd_tesserocr Crop, deskew, segment into regions / tables / lines / words, or recognize with tesserocr Introduction This package offers OCR-D complia

OCR-D 38 Oct 14, 2022
Source code of RRPN ---- Arbitrary-Oriented Scene Text Detection via Rotation Proposals

Paper source Arbitrary-Oriented Scene Text Detection via Rotation Proposals https://arxiv.org/abs/1703.01086 News We update RRPN in pytorch 1.0! View

428 Nov 22, 2022
Erosion and dialation using structure element in OpenCV python

Erosion and dialation using structure element in OpenCV python

Tamzid hasan 2 Nov 11, 2021
"Very simple but works well" Computer Vision based ID verification solution provided by LibraX.

ID Verification by LibraX.ai This is the first free Identity verification in the market. LibraX.ai is an identity verification platform for developers

LibraX.ai 46 Dec 06, 2022
Simple SDF mesh generation in Python

Generate 3D meshes based on SDFs (signed distance functions) with a dirt simple Python API.

Michael Fogleman 1.1k Jan 08, 2023
DouZero is a reinforcement learning framework for DouDizhu - 斗地主AI

[ICML 2021] DouZero: Mastering DouDizhu with Self-Play Deep Reinforcement Learning | 斗地主AI

Kwai 3.1k Jan 05, 2023
An unofficial package help developers to implement ZATCA (Fatoora) QR code easily which required for e-invoicing

ZATCA (Fatoora) QR-Code Implementation An unofficial package help developers to implement ZATCA (Fatoora) QR code easily which required for e-invoicin

TheAwiteb 28 Nov 03, 2022
An Agnostic Computer Vision Framework - Pluggable to any Training Library: Fastai, Pytorch-Lightning with more to come

An Agnostic Object Detection Framework IceVision is the first agnostic computer vision framework to offer a curated collection with hundreds of high-q

airctic 790 Jan 05, 2023
Random maze generator and solver

Maze Generator and Solver I wrote a maze generator that works with two commonly known algorithms: Depth First Search and Randomized Prims. Both of the

Daniel Pérez 10 Sep 23, 2022
原神风花节自动弹琴辅助

GenshinAutoPlayBalladsofBreeze 原神风花节自动弹琴辅助(已适配1920*1080分辨率) 本程序基于opencv图像识别技术,不存在任何封号。 因为正确率取决于你的cpu性能,10900k都不一定全对。 由于图像识别存在误差,根本无法确定出错时间。更不用说被检测到了。

晓轩 20 Oct 27, 2022
caffe re-implementation of R2CNN: Rotational Region CNN for Orientation Robust Scene Text Detection

R2CNN: Rotational Region CNN for Orientation Robust Scene Text Detection Abstract This is a caffe re-implementation of R2CNN: Rotational Region CNN fo

candler 80 Dec 28, 2021
Turn images of tables into CSV data. Detect tables from images and run OCR on the cells.

Table of Contents Overview Requirements Demo Modules Overview This python package contains modules to help with finding and extracting tabular data fr

Eric Ihli 311 Dec 24, 2022