mirror of
https://github.com/rocketraman/sane-scan-pdf.git
synced 2025-05-16 07:30:21 -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=
|
DRIVER_OPTION=
|
||||||
VERBOSE=0
|
VERBOSE=0
|
||||||
SKIP_EMPTY_PAGES=0
|
SKIP_EMPTY_PAGES=0
|
||||||
|
WHITE_THRESHOLD=99.8
|
||||||
|
BRIGHTNESS_CONTRAST=
|
||||||
SOURCE=""
|
SOURCE=""
|
||||||
|
|
||||||
TMP_DIR=$(mktemp -d -p "" scan.XXXXXXXXXX)
|
TMP_DIR=$(mktemp -d -p "" scan.XXXXXXXXXX)
|
||||||
@ -86,6 +88,8 @@ while [[ $# > 0 ]]; do
|
|||||||
|
|
||||||
--skip-empty-pages) SKIP_EMPTY_PAGES=1 ;;
|
--skip-empty-pages) SKIP_EMPTY_PAGES=1 ;;
|
||||||
|
|
||||||
|
--white-threshold) shift; WHITE_THRESHOLD=$1 ;;
|
||||||
|
|
||||||
-o|--output) shift; USEOUTPUT=1; OUTPUT="$1" ;;
|
-o|--output) shift; USEOUTPUT=1; OUTPUT="$1" ;;
|
||||||
|
|
||||||
-l|--outputlist) shift; USEARRAY=1; OUTPUTARR=(); OUTPUTARR+=("$1") ;;
|
-l|--outputlist) shift; USEARRAY=1; OUTPUTARR=(); OUTPUTARR+=("$1") ;;
|
||||||
@ -94,6 +98,8 @@ while [[ $# > 0 ]]; do
|
|||||||
|
|
||||||
-xo|--driver-options) shift; DRIVER_OPTION=$1;;
|
-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 ;;
|
*) if [[ $USEARRAY == 1 ]]; then OUTPUTARR+=("$1"); else echo >&2 "Unknown argument: $1"; exit 1; fi ;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
@ -145,6 +151,11 @@ if [[ $HELP == 1 ]]; then
|
|||||||
echo " which language to use for OCR"
|
echo " which language to use for OCR"
|
||||||
echo " --skip-empty-pages"
|
echo " --skip-empty-pages"
|
||||||
echo " remove empty pages from resulting PDF document (e.g. one sided doc in duplex mode)"
|
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 ""
|
||||||
echo "OUTPUT"
|
echo "OUTPUT"
|
||||||
echo " -o, --output <outputfile>"
|
echo " -o, --output <outputfile>"
|
||||||
@ -267,6 +278,8 @@ export PGWIDTHIN
|
|||||||
export PGHEIGHTIN
|
export PGHEIGHTIN
|
||||||
export PS2PDF_OPTS
|
export PS2PDF_OPTS
|
||||||
export SKIP_EMPTY_PAGES
|
export SKIP_EMPTY_PAGES
|
||||||
|
export WHITE_THRESHOLD
|
||||||
|
export BRIGHTNESS_CONTRAST
|
||||||
|
|
||||||
if [[ $VERBOSE == 1 ]]; then
|
if [[ $VERBOSE == 1 ]]; then
|
||||||
LOCKFILE=$(mktemp)
|
LOCKFILE=$(mktemp)
|
||||||
|
10
scan_perpage
10
scan_perpage
@ -14,6 +14,7 @@ usage()
|
|||||||
echo " PGWIDTHIN"
|
echo " PGWIDTHIN"
|
||||||
echo " PGHEIGHTIN"
|
echo " PGHEIGHTIN"
|
||||||
echo " SKIP_EMPTY_PAGES"
|
echo " SKIP_EMPTY_PAGES"
|
||||||
|
echo " BRIGHTNESS_CONTRAST"
|
||||||
echo " PS2PDF_OPTS (optional)"
|
echo " PS2PDF_OPTS (optional)"
|
||||||
echo " VERBOSE (optional)"
|
echo " VERBOSE (optional)"
|
||||||
echo " LOCKFILE (required if VERBOSE=1)"
|
echo " LOCKFILE (required if VERBOSE=1)"
|
||||||
@ -67,9 +68,14 @@ fi
|
|||||||
process_page() {
|
process_page() {
|
||||||
log ""
|
log ""
|
||||||
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 "-------------------------------------------------------------------------------"
|
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
|
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
|
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"
|
log "$IMAGE_PATH has $PERCENTAGE_WHITE % white"
|
||||||
@ -78,7 +84,7 @@ process_page() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
PP_PREFIX=
|
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"
|
log "Skipping empty page $IMAGE_FILE with white percentage $PERCENTAGE_WHITE"
|
||||||
else
|
else
|
||||||
if [[ $UNPAPER == 1 ]]; then
|
if [[ $UNPAPER == 1 ]]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user