mirror of
https://github.com/rocketraman/sane-scan-pdf.git
synced 2025-05-15 23:20:18 -07:00
Merge pull request #38 from surmann/master
Adjust brightness and optimise white page recognition
This commit is contained in:
commit
e40b766d2a
13
scan
13
scan
@ -31,6 +31,8 @@ DESKEW=0
|
||||
DRIVER_OPTION=
|
||||
VERBOSE=0
|
||||
SKIP_EMPTY_PAGES=0
|
||||
WHITE_THRESHOLD=99.8
|
||||
BRIGHTNESS_CONTRAST=
|
||||
SOURCE=""
|
||||
|
||||
TMP_DIR=$(mktemp -d -p "" scan.XXXXXXXXXX)
|
||||
@ -86,6 +88,8 @@ while [[ $# > 0 ]]; do
|
||||
|
||||
--skip-empty-pages) SKIP_EMPTY_PAGES=1 ;;
|
||||
|
||||
--white-threshold) shift; WHITE_THRESHOLD=$1 ;;
|
||||
|
||||
-o|--output) shift; USEOUTPUT=1; OUTPUT="$1" ;;
|
||||
|
||||
-l|--outputlist) shift; USEARRAY=1; OUTPUTARR=(); OUTPUTARR+=("$1") ;;
|
||||
@ -94,6 +98,8 @@ while [[ $# > 0 ]]; do
|
||||
|
||||
-xo|--driver-options) shift; DRIVER_OPTION=$1;;
|
||||
|
||||
--brightness-contrast-sw) shift; BRIGHTNESS_CONTRAST=$1 ;;
|
||||
|
||||
*) if [[ $USEARRAY == 1 ]]; then OUTPUTARR+=("$1"); else echo >&2 "Unknown argument: $1"; exit 1; fi ;;
|
||||
|
||||
esac
|
||||
@ -145,6 +151,11 @@ if [[ $HELP == 1 ]]; then
|
||||
echo " which language to use for OCR"
|
||||
echo " --skip-empty-pages"
|
||||
echo " remove empty pages from resulting PDF document (e.g. one sided doc in duplex mode)"
|
||||
echo " --white-threshold"
|
||||
echo " threshold to identify an empty page is a percentage value between 0 and 100. The default is 99.8"
|
||||
echo " --brightness-contrast-sw"
|
||||
echo " Alter brightness and contrast via post-processing - prefer specifying brightness and/or"
|
||||
echo " contrast via --driver-options if supported by your hardware."
|
||||
echo ""
|
||||
echo "OUTPUT"
|
||||
echo " -o, --output <outputfile>"
|
||||
@ -267,6 +278,8 @@ export PGWIDTHIN
|
||||
export PGHEIGHTIN
|
||||
export PS2PDF_OPTS
|
||||
export SKIP_EMPTY_PAGES
|
||||
export WHITE_THRESHOLD
|
||||
export BRIGHTNESS_CONTRAST
|
||||
|
||||
if [[ $VERBOSE == 1 ]]; then
|
||||
LOCKFILE=$(mktemp)
|
||||
|
10
scan_perpage
10
scan_perpage
@ -14,6 +14,7 @@ usage()
|
||||
echo " PGWIDTHIN"
|
||||
echo " PGHEIGHTIN"
|
||||
echo " SKIP_EMPTY_PAGES"
|
||||
echo " BRIGHTNESS_CONTRAST"
|
||||
echo " PS2PDF_OPTS (optional)"
|
||||
echo " VERBOSE (optional)"
|
||||
echo " LOCKFILE (required if VERBOSE=1)"
|
||||
@ -67,9 +68,14 @@ fi
|
||||
process_page() {
|
||||
log ""
|
||||
log "-------------------------------------------------------------------------------"
|
||||
log "Post-processing scanned page ${IMAGE_PATH}, deskew=$UNPAPER, searchable=$SEARCHABLE, skip-empty-pages=$SKIP_EMPTY_PAGES..."
|
||||
log "Post-processing scanned page ${IMAGE_PATH}, deskew=$UNPAPER, searchable=$SEARCHABLE, skip-empty-pages=$SKIP_EMPTY_PAGES, white-threshold=$WHITE_THRESHOLD, brightness-contrast-sw=$BRIGHTNESS_CONTRAST..."
|
||||
log "-------------------------------------------------------------------------------"
|
||||
|
||||
if [[ "$BRIGHTNESS_CONTRAST" != "" ]]; then
|
||||
log "Adjust brightness and contrast in ImageMagick by $BRIGHTNESS_CONTRAST"
|
||||
convert "$IMAGE_PATH" -brightness-contrast $BRIGHTNESS_CONTRAST "$IMAGE_PATH"
|
||||
fi
|
||||
|
||||
if [[ $SKIP_EMPTY_PAGES == 1 ]]; then
|
||||
PERCENTAGE_WHITE=$(convert "$IMAGE_PATH" -fuzz 0% -negate -threshold 0 -negate -format "%[fx:100*mean]" info:) || PERCENTAGE_WHITE=0
|
||||
log "$IMAGE_PATH has $PERCENTAGE_WHITE % white"
|
||||
@ -78,7 +84,7 @@ process_page() {
|
||||
fi
|
||||
|
||||
PP_PREFIX=
|
||||
if [[ $SKIP_EMPTY_PAGES == 1 && $(echo "$PERCENTAGE_WHITE > 99.8" | bc -l) == 1 ]]; then
|
||||
if [[ $SKIP_EMPTY_PAGES == 1 && $(echo "$PERCENTAGE_WHITE > $WHITE_THRESHOLD" | bc -l) == 1 ]]; then
|
||||
log "Skipping empty page $IMAGE_FILE with white percentage $PERCENTAGE_WHITE"
|
||||
else
|
||||
if [[ $UNPAPER == 1 ]]; then
|
||||
|
Loading…
x
Reference in New Issue
Block a user