Git Product home page Git Product logo

scantailor-advanced's People

Contributors

4lex4 avatar a17r avatar furlosk avatar micrococo avatar trufanov-nok avatar varandas79 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scantailor-advanced's Issues

Portable version

Is it possible to add a portable version of scantailor advanced (now only exe)?

Question about using dewarp-function standalone

I am really impressed with the automatic dewarp function of ScanTailor, I have not seen such a function or filter in any open source image correction software.
I wonder if someone could point me in the direction of how to use this function/algorithm as a standalone feature in my automated image preparation before ocr pipeline? A pointer onto how to integrate the feature into a standalone c/python/bash program?
Or if it would be available in the future via the CLI like: scantailor-cli --dewarp --infile myfile.png --outfile dewarped-file.png

inclination issue

I noticed in scan tailor 0.9.11 the select content fix the text inclination automatically but the scan tailor advanced 1.0.15t does not fix the inclination automatically.

can't build latest dev versions on Slackware 14.2

Although I can successfully compile version 1.0.14 on Slackware 14.2. I've got gcc 5.5.0 and qt5 5.7.1.

Scanning dependencies of target stcore
[ 25%] Building CXX object imageproc/CMakeFiles/imageproc.dir/AdjustBrightness.cpp.o
[ 25%] Building CXX object CMakeFiles/stcore.dir/BackgroundExecutor.cpp.o
[ 26%] Building CXX object imageproc/CMakeFiles/imageproc.dir/SEDM.cpp.o
[ 27%] Building CXX object CMakeFiles/stcore.dir/PixmapRenderer.cpp.o
[ 27%] Building CXX object CMakeFiles/stcore.dir/BubbleAnimation.cpp.o
[ 27%] Building CXX object imageproc/CMakeFiles/imageproc.dir/ConnectivityMap.cpp.o
[ 27%] Building CXX object CMakeFiles/stcore.dir/ProcessingIndicationWidget.cpp.o
In file included from /usr/include/c++/5.5.0/bits/hashtable.h:35:0,
                 from /usr/include/c++/5.5.0/unordered_map:47,
                 from /home/blabla/sta/ColorScheme.h:7,
                 from /home/blabla/sta/ColorSchemeManager.h:8,
                 from /home/blabla/sta/ProcessingIndicationWidget.cpp:23:
/usr/include/c++/5.5.0/bits/hashtable_policy.h: In instantiation of ‘struct std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> >’:
/usr/include/c++/5.5.0/type_traits:137:12:   required from ‘struct std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > >’
/usr/include/c++/5.5.0/type_traits:148:38:   required from ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
/usr/include/c++/5.5.0/bits/unordered_map.h:100:66:   required from ‘class std::unordered_map<ColorScheme::ColorParam, QColor>’
/home/blabla/sta/ColorSchemeManager.h:27:28:   required from here
/usr/include/c++/5.5.0/bits/hashtable_policy.h:85:34: error: no match for call to ‘(const std::hash<ColorScheme::ColorParam>) (const ColorScheme::ColorParam&)’
  noexcept(declval<const _Hash&>()(declval<const _Key&>()))>
                                  ^
In file included from /usr/include/c++/5.5.0/bits/move.h:57:0,
                 from /usr/include/c++/5.5.0/bits/stl_pair.h:59,
                 from /usr/include/c++/5.5.0/utility:70,
                 from /usr/include/qt5/QtCore/qcompilerdetection.h:1001,
                 from /usr/include/qt5/QtCore/qglobal.h:83,
                 from /usr/include/qt5/QtGui/qrgb.h:43,
                 from /usr/include/qt5/QtGui/qcolor.h:43,
                 from /usr/include/qt5/QtGui/QColor:1,
                 from /home/blabla/sta/ProcessingIndicationWidget.h:22,
                 from /home/blabla/sta/ProcessingIndicationWidget.cpp:19:
/usr/include/c++/5.5.0/type_traits: In instantiation of ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’:
/usr/include/c++/5.5.0/bits/unordered_map.h:100:66:   required from ‘class std::unordered_map<ColorScheme::ColorParam, QColor>’
/home/blabla/sta/ColorSchemeManager.h:27:28:   required from here
/usr/include/c++/5.5.0/type_traits:148:38: error: ‘value’ is not a member of ‘std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > >’
     : public integral_constant<bool, !_Pp::value>
                                      ^
In file included from /usr/include/c++/5.5.0/unordered_map:48:0,
                 from /home/blabla/sta/ColorScheme.h:7,
                 from /home/blabla/sta/ColorSchemeManager.h:8,
                 from /home/blabla/sta/ProcessingIndicationWidget.cpp:23:
/usr/include/c++/5.5.0/bits/unordered_map.h: In instantiation of ‘class std::unordered_map<ColorScheme::ColorParam, QColor>’:
/home/blabla/sta/ColorSchemeManager.h:27:28:   required from here
/usr/include/c++/5.5.0/bits/unordered_map.h:100:66: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef __umap_hashtable<_Key, _Tp, _Hash, _Pred, _Alloc>  _Hashtable;
                                                                  ^
/usr/include/c++/5.5.0/bits/unordered_map.h:107:45: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::key_type key_type;
                                             ^
/usr/include/c++/5.5.0/bits/unordered_map.h:108:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::value_type value_type;
                                               ^
/usr/include/c++/5.5.0/bits/unordered_map.h:109:48: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::mapped_type mapped_type;
                                                ^
/usr/include/c++/5.5.0/bits/unordered_map.h:110:43: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::hasher hasher;
                                           ^
/usr/include/c++/5.5.0/bits/unordered_map.h:111:46: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::key_equal key_equal;
                                              ^
/usr/include/c++/5.5.0/bits/unordered_map.h:112:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::allocator_type allocator_type;
                                                   ^
/usr/include/c++/5.5.0/bits/unordered_map.h:117:45: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::pointer  pointer;
                                             ^
/usr/include/c++/5.5.0/bits/unordered_map.h:118:50: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::const_pointer const_pointer;
                                                  ^
/usr/include/c++/5.5.0/bits/unordered_map.h:119:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::reference  reference;
                                               ^
/usr/include/c++/5.5.0/bits/unordered_map.h:120:52: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::const_reference const_reference;
                                                    ^
/usr/include/c++/5.5.0/bits/unordered_map.h:121:46: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::iterator  iterator;
                                              ^
/usr/include/c++/5.5.0/bits/unordered_map.h:122:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::const_iterator const_iterator;
                                                   ^
/usr/include/c++/5.5.0/bits/unordered_map.h:123:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::local_iterator local_iterator;
                                                   ^
/usr/include/c++/5.5.0/bits/unordered_map.h:124:57: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::const_local_iterator const_local_iterator;
                                                         ^
/usr/include/c++/5.5.0/bits/unordered_map.h:125:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::size_type  size_type;
                                               ^
/usr/include/c++/5.5.0/bits/unordered_map.h:126:52: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       typedef typename _Hashtable::difference_type difference_type;
                                                    ^
/usr/include/c++/5.5.0/bits/unordered_map.h:280:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       operator=(initializer_list<value_type> __l)
       ^
/usr/include/c++/5.5.0/bits/unordered_map.h:379:2: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
  emplace(_Args&&... __args)
  ^
/usr/include/c++/5.5.0/bits/unordered_map.h:432:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       insert(const value_type& __x)
       ^
/usr/include/c++/5.5.0/bits/unordered_map.h:439:2: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
  insert(_Pair&& __x)
  ^
/usr/include/c++/5.5.0/bits/unordered_map.h:499:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       insert(initializer_list<value_type> __l)
       ^
/usr/include/c++/5.5.0/bits/unordered_map.h:645:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       equal_range(const key_type& __x)
       ^
/usr/include/c++/5.5.0/bits/unordered_map.h:649:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<ColorScheme::ColorParam> >, std::__detail::__is_noexcept_hash<ColorScheme::ColorParam, std::hash<ColorScheme::ColorParam> > > >’
       equal_range(const key_type& __x) const
       ^
[ 27%] Building CXX object imageproc/CMakeFiles/imageproc.dir/InfluenceMap.cpp.o
CMakeFiles/stcore.dir/build.make:138: recipe for target 'CMakeFiles/stcore.dir/ProcessingIndicationWidget.cpp.o' failed
make[2]: *** [CMakeFiles/stcore.dir/ProcessingIndicationWidget.cpp.o] Error 1
CMakeFiles/Makefile2:117: recipe for target 'CMakeFiles/stcore.dir/all' failed
make[1]: *** [CMakeFiles/stcore.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 27%] Building CXX object imageproc/CMakeFiles/imageproc.dir/MaxWhitespaceFinder.cpp.o
[ 27%] Building CXX object imageproc/CMakeFiles/imageproc.dir/RastLineFinder.cpp.o
[ 28%] Building CXX object imageproc/CMakeFiles/imageproc.dir/ColorInterpolation.cpp.o
[ 28%] Building CXX object imageproc/CMakeFiles/imageproc.dir/SeedFillGeneric.cpp.o
[ 28%] Building CXX object imageproc/CMakeFiles/imageproc.dir/BackgroundColorCalculator.cpp.o
[ 28%] Building CXX object imageproc/CMakeFiles/imageproc.dir/BadAllocIfNull.cpp.o
[ 28%] Building CXX object imageproc/CMakeFiles/imageproc.dir/ColorSegmenter.cpp.o
[ 29%] Building CXX object imageproc/CMakeFiles/imageproc.dir/ColorTable.cpp.o
[ 29%] Building CXX object imageproc/CMakeFiles/imageproc.dir/ImageCombination.cpp.o
[ 29%] Linking CXX static library libimageproc.a
[ 29%] Built target imageproc
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

need some help (if possible)

i have some questions about program proceses...about dewarp option.. to be concrete and dpi

  1. does program at first step dewarping image and then use algoritm to upscale it?
    in that case isnot better to upscale images in another software and then drop them in ST with high resolutions?
  2. if i understand correct better to use x2 or x4 of source resolution in output stage?
    or x2 is the best one?
  3. i am on photo scaner.. and i measured my dpi (its 192 ) is it ok in that case use 200 in "fix dpi" dialog options?
    or better stay with 192 and then choise 384 at output stage?

please help((

Rename pages made by a camera

Hello,

I want to thank to develop scan tailer further.

The program is intented for regular scanners. However, I use a camera to picture the pages of the book. I photograph the uneven pages first, then the even pages. To sort the pages, I use a small tool called RenameAll from this website: http://www.instructables.com/id/Bargain-Price-Book-Scanner-From-A-Cardboard-Box/ It would be great if scan tailer had such a feature, it would mean using only one program instead of two. I'm quite sure such a feature would make DIY book scanners like me very happy.

Thank you for considering this.

Feat. Reqs.: (i) Irfanview paintbrush style filler; (ii) measuring tool in Select stage

ST Advanced (I'm on v.1.0.14 having gone back from v.1.0.16): in my view this has radically improved ST generally and is near equilibrium between optimal capabilities and clutter-free elegance, avoiding "function creep". However there are two main issues which in practice I find capable of improvement; but not being a developer, I don't know how easily these could be addressed nor if there are already other means to securing the objectives outlined below.

1). most important in my working experience: the select tool for redactions or unwanted artefacts etc in final output stage ("Fill Zone") demands several mouse movements which can become very tiring. Is there any means of including an optionally different tool for selecting or erasing/infilling like the paintbrush tool in Irfanview or the paintbrush tool in Gimp? These demand far fewer mouse movements and can infill - select - erase smoothly. If I have a very polluted scanned page I generally clean up in Gimp as much as possible before submitting it to ST, but I have noticed that ST can, whether through its equalisation output option or other means, remove many artefacts which in the past I have wasted time eliminating in Gimp in the pre-ST stage. But often still many are left unpredictably (one cannot predict the level of its darkness at which an artefact might be removed by the equalisation option for example), and current Fill Zone selecting them is arduous. Also as far as I know Gimp has no inbuilt batch methodology so when faced with numerous pages requiring treatment I have tried using XnView's batch although in my particular experience this involves first identifying e.g. required levels of the relevant pages in Gimp then inputting the values into XnView before running its batch.

  1. My modus operandi tends to be that I take the scanned item's cover as a size/shape template for determining the size of all successive pages. In the Selection stage I will complete selection of all pages then determine which is highest / tallest and also whether it is widest. I will then make a preliminary step in Margins, taking that largest page and selecting its margins as zero, then applying that to all pages. Finally I will sample a few pages in Output stage to see if there are excessively large or small margins / white space round text of the later pages in the visible final version. If there are, I will go back to Selection stage and resize the selection of the cover page "template" and try again one or more times before the final output is acceptable. Sometimes this may involve scaling/reducing (or more rarely, increasing) size of the input image of the cover in Gimp so all its required content can be selected but without creating unwanted excessive surrounding blank/white space in the following pages.
    I find this methodologly intuitive but implementing it is difficult because among other things, the Select stage does not have a measuring tool so one can compare the selected parts of different pages e.g. front and back covers or other pages whose selected area one wishes to match. Also, I tried playing with the margins and other settings in v1.0.16 but found it difficult to understand the concept behind them.

A few lesser points:

  1. in v1.0.16 can the thumbnails display include an option to display them like in e.g. in v1.0.14? Needing to adjust them seemed to include a novel item which was initially confusing (when first coming to use this version one asked: where is the means of adjusting their size) when the old default scheme just worked.

  2. can a means be included of maximising the middle (page display) window so the left hand (Filters and options) and right hand (thumbnails) can disappear from view so one can get a good view of the output page and thereby see better any remaining unwanted artefacts? Moving from page to page could still be done in this mode using the keyboard short cuts of q (up) and w (down).

  3. In output stage the introduction of the different colours for filling/background was a good step and likewise posterize, however for greyscale images sometimes they are too faint (and annoyingly this often presents in part only of the page being faint/under-inked while the remainder is normal). Hitherto where necessary I have changed these levels using Gimp to identify the desired levels and XnView to batch apply them but wondered if ST's output step could include a rudimentary darker/lighter optional setting for grayscale (a bit like the thicker/thinner output option for b&w). Often the Posterize setting can accomplish this but sometimes it seems to alter the page appearance more radically.

  4. dewarping: just an observation that when and how this works remains a complete mystery to me! Sometimes its default-on produces an amazingly correct transformation of a warped page (e.g. the input image is nearer to the right side of the canvas at top but nearer to the left size of the canvas at bottom). At other times for similar malformed images it distorts them further. Presumably the possible variations are nearly impossible to predict, so a manual treatment is going to be necessary often. But can the manual settings be explained somewhere more fully e.g. in a wiki page? Currently where ST fails in dewarping I will try the Tools/Transform Tools/Perspective tool in Gimp, though its results rarely match ST's best output.

Thanks for reading and thanks more for all the great work on enhancing ST.

icc profiles

Would it be possible to implement at least an option to keep icc profiles embedded in images? ScanTailor currently removes icc profiles by default with no setting regarding icc profiles, if I am not mistaken. Thanks.

dewarp idea

currently i have good results with 2 step processing

  1. cut the pages and process them
  2. dewarp this pages

difference is: if you use dewarp in first stage.. it use page boundaries (and some times results are non realy good)
if you use dewarp on second step.. it use text as canvas.

is it possible to add option to use only content box space for dewarp procedure?

compilation error: call of overloaded ‘abs(qreal)’ is ambiguous

When compiling version 1.0.13 with gcc-6.4.0 and qt-5.9.4, I get a compilation error:

/home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.cpp: In memberfunctie ‘virtual void ZoneVertexDragInteraction::onMouseMoveEvent(QMouseEvent*, InteractionState&)’:
/home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.cpp:122:116: fout: call of overloaded ‘abs(qreal)’ is ambiguous
                                         / sqrt(pow((prev.y() - current.y()), 2) + pow((prev.x() - current.x()), 2)));
                                                                                                                    ^
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:75:0,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/stl_algo.h:59,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/algorithm:62,
                 from /usr/include/qt5/QtCore/qglobal.h:109,
                 from /usr/include/qt5/QtCore/qatomic.h:41,
                 from /usr/include/qt5/QtCore/QAtomicInt:1,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/foundation/ref_countable.h:26,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/EditableSpline.h:23,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/BasicSplineVisualizer.h:22,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.h:22,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.cpp:19:
/usr/include/stdlib.h:751:12: note: candidate: int abs(int)
 extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
            ^~~
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/stl_algo.h:59:0,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/algorithm:62,
                 from /usr/include/qt5/QtCore/qglobal.h:109,
                 from /usr/include/qt5/QtCore/qatomic.h:41,
                 from /usr/include/qt5/QtCore/QAtomicInt:1,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/foundation/ref_countable.h:26,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/EditableSpline.h:23,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/BasicSplineVisualizer.h:22,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.h:22,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.cpp:19:
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:185:3: note: candidate: __int128 std::abs(__int128)
   abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; }
   ^~~
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:180:3: note: candidate: long long int std::abs(long long int)
   abs(long long __x) { return __builtin_llabs (__x); }
   ^~~
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:172:3: note: candidate: long int std::abs(long int)
   abs(long __i) { return __builtin_labs(__i); }
   ^~~
/home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.cpp:124:116: fout: call of overloaded ‘abs(qreal)’ is ambiguous
                                         / sqrt(pow((next.y() - current.y()), 2) + pow((next.x() - current.x()), 2)));
                                                                                                                    ^
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:75:0,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/stl_algo.h:59,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/algorithm:62,
                 from /usr/include/qt5/QtCore/qglobal.h:109,
                 from /usr/include/qt5/QtCore/qatomic.h:41,
                 from /usr/include/qt5/QtCore/QAtomicInt:1,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/foundation/ref_countable.h:26,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/EditableSpline.h:23,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/BasicSplineVisualizer.h:22,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.h:22,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.cpp:19:
/usr/include/stdlib.h:751:12: note: candidate: int abs(int)
 extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
            ^~~
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/stl_algo.h:59:0,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/algorithm:62,
                 from /usr/include/qt5/QtCore/qglobal.h:109,
                 from /usr/include/qt5/QtCore/qatomic.h:41,
                 from /usr/include/qt5/QtCore/QAtomicInt:1,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/foundation/ref_countable.h:26,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/EditableSpline.h:23,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/BasicSplineVisualizer.h:22,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.h:22,
                 from /home/equaeghe/tmp/scantailor-advanced-1.0.13/zones/ZoneVertexDragInteraction.cpp:19:
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:185:3: note: candidate: __int128 std::abs(__int128)
   abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; }
   ^~~
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:180:3: note: candidate: long long int std::abs(long long int)
   abs(long long __x) { return __builtin_llabs (__x); }
   ^~~
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:172:3: note: candidate: long int std::abs(long int)
   abs(long __i) { return __builtin_labs(__i); }
   ^~~

Problem with black background instead of white

Hi
I have a page with a lot of (dark) images and very little text. I'm struggling to get ScanTailor to chose a white background (for the margins) in this scenario.
I've selected 'mixed' mode because of the images. I'd expect that the 'Filling - Color: white' would do exactly that - however it does nothing (and there's no tooltip describing this property).
There's another related: 'Processing -> Black on white mode' which seems to help..
Could you explain how the two properties are related and which would be the preferred to fix this situation? Also, why isn't the 'black on white mode' selected by default - I'd assume that most books are indeed black on white?
image

Here's the input image:
https://user-images.githubusercontent.com/17089359/43808165-0869927a-9aac-11e8-9ece-d79a20fec76b.jpg

Thanks
Matt

Greyscale output

I scan a lot of books with greyscale pictures. However, ST only outputs either Black&White (1bit) output or full 24bit output if the input files are 24bit as well.
So currently I have to convert all scans to greyscale BEFORE importing them into ST if I want pages with pictures to be produced in greyscale as well.
It would be nice if greyscale output could be selected in addition to 1bit and 24bit to do it directly from the workflow. This would be especially interesting for projects with mixed colored and greyscale images to avoid having to selectively convert the pages before or after ST.
Also the dropdown concerning the adjustment of the colors is misleading with greyscale input: I have to select the option for COLOR input in order to have the pictures adjusted in their brightness which is a bit misleading. Perhaps it should just explicitly say that it's for color and greyscale (in contrast to the other option being for pure black and white)

Impossibly small (non working) UI widgets on Linux Mint

I have been trying out my just compiled Linux Mint version and run up against UI widgets that are so small one can hardly work with it. Drop downs often do not work when clicking on them. However, when I move the window to my smaller laptop screen from my external monitor, the widget not only are bigger, but also just work.
So it seems a scaling factor is at play in relation to the screen size? Is there a way to fix these impossibly small widgets?
Attached a photo of the issue. Note the size of the mouse pointer in relation to the widgets and my terminal window on the left
img_1423
.

scantailor-cli missing?

This branch of scantailor is awesome and addresses some of the challenges I have faced when using scantailor. Much of the work we do is automated however and it seems scantailor-cli is missing from the release?

F5 or similar to remake output

After setting up a project and running all the steps, it could be necessary to retouch some of the original scans using an external software (e.g., GIMP), possibly several times. Each iteration requires either deleting the corresponding file from the out folder or modifying something else in the project for Scan Tailor to generate the new output. I normally change the size of a spurious white fill zone. This requires creating it and changing between output tabs or between pages for it to work, which makes it a bit cumbersome.
It would be nice to have some hotkey to force Scan Tailor to remake the output for the current page, regardless of anything else.
I'm suggesting F5, which is commonly associated with the update feature in web browsers and other apps.

Library for the most used functions

Hello,

is it possible to create a library for the functions of scantailor.
this would allow to include the functionality like dewarp, binarization,
border detection and so on in other applications with different
languages.
In this case you are also be able to seperate the Gui from the Functions
which is a better way i think.

This would be great if its possible!
Librarys like leptonica doesnt provideall this functions for easy access and
i dont know graphic-libs that support all these great things.

context box

For automatic mode in context box:

  1. that user can put additional value of context box to left, right, top and down (to resize automatic context box with additional value).

  2. that user cam manually say: i want that my context box always start from top, and his lenght is fixed value (after automatic recognition application put context box on top, with fixed length and additional value on left and right)

I have this problem when scan older books, and manually must change value of context box. It take a lots of time when you have a few hundred pages.

Thanks,
Mario

how to start scantailor on windows7?

is there an advice to start scantailor (advanced) on windows7?

nothing happens if scantailor.exe has been started from the explorer or the cmd shell.

Fix orientation also at the end

I think it would be nice to be able to fix the page orientation also in the Output step. Some books have pages designed to be read in landscape orientation. However, setting it in the Fix Orientation step makes margins difficult to adjust consistently. That's why it would be nice to also have it in the last step.

Add OpenCL support

Add OpenCL acceleration support from Experimental to increase the performance of the application.

Build fails because of incomplete type 'QStyle'

I'm trying to build SCA on ArchLinux, and this is what I get:

/src/scantailor-advanced/ErrorWidget.cpp: In constructor 'ErrorWidget::ErrorWidget(const String&, Qt::TextFormat)':
/src/scantailor-advanced/ErrorWidget.cpp:25:30: error: variable 'QIcon icon' has initializer buti ncomplete type
     QIcon icon(QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning));
                              ^~~~~
/src/scantailor-advanced/ErrorWidget.cpp:25:37: error: invalid use of incomplete type 'class QStyle'
     QIcon icon(QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning));
                                     ^~
In file included from /usr/include/qt/QtWidgets/QApplication:1,
                 from /src/scantailor-advanced/ui_ErrorWidget.h:13,
                 from /src/scantailor-advanced/ErrorWidget.h:22,
                 from /src/scantailor-advanced/ErrorWidget.cpp:19:
/usr/include/qt/QtWidgets/qapplication.h:58:7: note: forward declaration of 'class QStyle'
 class QStyle;
       ^~~~~~
/src/scantailor-advanced/ErrorWidget.cpp:25:60: error: incomplete type 'QStyle' used in nested name specifier
     QIcon icon(QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning));
                                                            ^~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/stcore.dir/build.make:665: CMakeFiles/stcore.dir/ErrorWidget.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/stcore.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Qt 5.11.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 8.1.0) on "xcb" 
OS: Arch Linux [linux version 4.16.11-1-ARCH]

A selection box which everything inside gets selected by auto

This is a feature request on something I've been missing in all different versions of ScanTailor.

Way to often, the automatic selection skips page numbers or top bars

A request of another selection box to be applied -to what is choosen in the "apply to" box-, where every pixel is taken into a higher consideration when the "select content" is run.

Qt output when starting on Linux

I managed to compile STA on my Linux Mint box. When I start STA from the terminal it outputs:

Gtk-Message: Failed to load module "pantheon-filechooser-module"
QStackedWidget(0x23a0660, name="qt_tabwidget_stackedwidget")  does not have a property named  "drawBase"
QWidget::setLayout: Attempting to set QLayout "" on QGroupBox "recentProjectsGroup", which already has a layout

Do I need to fix something or is this 'just fine'?

Zoom content selection

I was wondering if you would consider a new feature. I have attached a mockup screenshot to show the idea. It would be nice to be able to automatically zoom the content selection so as to get a closer look at the edges of the border. It be easier to use the adjusting content area option by having the page already zoomed in.

screen

Crash on blank page

With Build scantailor-advanced-1.0.12-x64.7z

Using the attached page as the only input to a new project.
Jump directly to the output stage.
Change the output mode to black/white
ScanTailor will crash.

p - 0501.zip

Leaving the output Color / Grayscale does not crash and creates an output file.

Manually choosing a content box for this page will not crash when switched to black and white.

Just in case the crash is related to a default setting change, I have also included the complete project before a crash.

test.zip

Can not apply manual content area to the following pages

Encounted that I can not apply manual content area to the following pages, if they already have manual content area.
If I want to apply a different content area from some page to all following pages, only 4-5 pages following the source page are changed at first, and then - only one page is changed.
The program is very nice as it works much faster due to multicore usage, but this bug made me switch back to ScanTailor Featured, which is working OK.
Its a pitty. Could you please look into it?

Check for a Blank Pages on Output Stage

On the output state, It would be useful to check for a blank page.

this way the page will be complete white/blank and there will be no potential for small obstacles/despeckling areas.

The blank/white page should be the same size as the other pages.

TAB order in margins

can the tab order be re-arranged in margins so that you'll tab through from top, bottom, left and right to apply

right now it's top, left and apply..

Use Eigen lib

Use the Eigen library for matrix and vector calculations to increase performance of the app.

Cannot select pdf files to create project

Probably this is just me not knowing how to use the program, but when I try to create a project, I can select a directory, but not any pdf to work on in that directory. Am I doing something wrong or should this work?

failed to install on MacOS 13

/Applications/scantailor-advanced-master/filters/output/ApplyColorsDialog.cpp:30:29: error: 
      allocation of incomplete type 'QButtonGroup'
          m_pScopeGroup(new QButtonGroup(this)) {
                            ^~~~~~~~~~~~
/usr/local/Cellar/qt/5.11.0/lib/QtWidgets.framework/Headers/qabstractbutton.h:53:7: note: 
      forward declaration of 'QButtonGroup'
class QButtonGroup;
      ^
/Applications/scantailor-advanced-master/filters/output/ApplyColorsDialog.cpp:32:18: error: 
      member access into incomplete type 'QButtonGroup'
    m_pScopeGroup->addButton(thisPageRB);
                 ^
/usr/local/Cellar/qt/5.11.0/lib/QtWidgets.framework/Headers/qabstractbutton.h:53:7: note: 
      forward declaration of 'QButtonGroup'
class QButtonGroup;
      ^
/Applications/scantailor-advanced-master/filters/output/ApplyColorsDialog.cpp:33:18: error: 
      member access into incomplete type 'QButtonGroup'
    m_pScopeGroup->addButton(allPagesRB);
                 ^
/usr/local/Cellar/qt/5.11.0/lib/QtWidgets.framework/Headers/qabstractbutton.h:53:7: note: 
      forward declaration of 'QButtonGroup'
class QButtonGroup;
      ^
/Applications/scantailor-advanced-master/filters/output/ApplyColorsDialog.cpp:34:18: error: 
      member access into incomplete type 'QButtonGroup'
    m_pScopeGroup->addButton(thisPageAndFollowersRB);
                 ^
/usr/local/Cellar/qt/5.11.0/lib/QtWidgets.framework/Headers/qabstractbutton.h:53:7: note: 
      forward declaration of 'QButtonGroup'
class QButtonGroup;
      ^
/Applications/scantailor-advanced-master/filters/output/ApplyColorsDialog.cpp:35:18: error: 
      member access into incomplete type 'QButtonGroup'
    m_pScopeGroup->addButton(selectedPagesRB);
                 ^
/usr/local/Cellar/qt/5.11.0/lib/QtWidgets.framework/Headers/qabstractbutton.h:53:7: note: 
      forward declaration of 'QButtonGroup'
class QButtonGroup;
      ^
5 errors generated.
make[2]: *** [filters/output/CMakeFiles/output.dir/ApplyColorsDialog.cpp.o] Error 1
make[1]: *** [filters/output/CMakeFiles/output.dir/all] Error 2
make: *** [all] Error 2

Shortcut for "Go to page"

It would be nice to have a keyboard shortcut to go to a specific page number. The only way I know of now is to scroll through the thumbnails and try to spot the number looked for as the pages go by.
I suggest Ctrl+G, which is fairly common in other software, and is currently not being used in ST.

Cannot change color scheme

I cannot change to color scheme from dark to light. When I restart, the app just forgets that I changed the setting. (I run the app from gnome).

Batch processing alter orientation of displayed image

The postUpdateUI method of the fix_orientation OptionsWidget is called on the completion of batch tasks with the (new) image rotation. The image that was processed may or may not be the image that is displayed by the widget. If it is not, then updating the rotation setting for the displayed image is incorrect. The postUpdateUI method needs an ImageId parameter so that the setting is updated only if it applies to the displayed image.

question about saving options

hello, 4lex4!
sorry for offtop, but i have a question=/

i have scaned my files at 3264x2448 , 24 bit color with 96 dpi [compressed png file forma] (averange file size-10mb

i'l started to save my projects at black/white tiff 600dpi,
but now thinking to swith to color option (some of text has grayscale parts with are missssed at b&w option)
questions are:
do i realy need 600dpi, or 300dpi will be enought? according to my input file?
color mode gives me 100 mb(at 600dpi) per page file sizes, any options how to compress them better?

thank you

may be there are is any other lossless option to store this 120mb tiff files for archiving purpose?

out of memory

tested on v1.0.13 and v1.0.14 x64
using dewarping option on aprox 1000 pages in batch mode.. always get this error
(tested on different configs 8 and 16 gb of ram)

probably this error occurs on blank pages?

Packaging for Linux

Couldn't find binary packages for Debian, so I have just followed your "Compile from source" faq under Linux Mint 19 (Ubuntu).

  1. We have libjpeg-dev in our repos, which is a meta for libjpeg8-turbo-dev, yet you demand libjpeg9-dev, which conflicts with libjpeg8-dev -- but it is required by libtiff5. Nevertheless, jpeg functionality is intact (just completed a book).

  2. cpack -g "DEB" successfully forges a Deb package, but writes no dependencies. How are we supposed to know to install libqt5gui5, libqt5xml5, libqt5core5a, libpng16-16, libjpeg8 etc. without visiting your github project page? You may provide CPACK_ flags(variables) to solve this.

  3. I agree many users have gcc-7, g++-7, lib*-dev, cmake and X11/pictureformat dev.libs installed on their linux boxes. Still, would you please publish .deb and .rpm for i686,amd64,armhf into releases?

Apply manual cut to multiple pages

Applying a manual cut to multiple pages does not seem to work properly or consistently.

I have been trying to apply a specific cut to "this page and the following every other page" and while it has worked when starting from an even page number, doing it further on in the document at an odd page number then gives no results.

I have tried setting the cut before applying the settings to the following pages, and afterwards. Cannot seem to get the correct results.

Is this the expected behaviour? It doen not seem quite right to me.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.