My new source:
Code: Select all
rem This script transform the "v-scanning" of a paper book into a rectangular image,
rem by compensating perspective diastortion.
@echo off
rem ***********************************************
rem ************ CUSTOM SETTINGS ******************
set SOURCEIMGPATH=F:\documenti\Progetti\ebook\
set SOURCEIMGNAME=Ebook058.JPG
set MAGICKPATH=F:\programmi\grafica\ImageMagick-6.6.6-4\
rem Each distorted page is defined by TopLeft X,Y , TopRight X,Y, BottomRight X,Y and BottomLeft X,Y coordinates;
set TLX1=580
set TLY1=30
set TRX1=1250
set TRY1=195
set BLX1=580
set BLY1=1323
set BRX1=1250
set BRY1=1264
rem Right coordinates of left image match to left coordinates of right image:
set TLX2=1275
set TLY2=216
set TRX2=1901
set TRY2=29
set BLX2=1293
set BLY2=1265
set BRX2=1967
set BRY2=1302
rem ************ END OF SETTINGS *******************
rem ************************************************
Rem Calculate page width and height:
set /A WIDTH1= %TRX1%-%TLX1%
set /A HEIGHT1= %BLY1%-%TLY1%
set /A WIDTH2= %TRX2%-%TLX2%
set /A HEIGHT2= %BRY2%-%TRY2%
rem Calculate top and bottom offset for right margin of left page:
set /A TopOffset1 = %TRY1%-%TLY1%
set /a BottomOffset1 = %TopOffset1%+%BRY1%-%TRY1%
set /A TopOffset2 = %TRY1%-%TLY1%
set /a BottomOffset2 = %TopOffset2%+%BLY2%-%TLY2%
rem Debug printing:
echo %WIDTH1%x%HEIGHT1%+%TLX1%+%TLY1% %SOURCEIMGPATH%left.jpg
echo %WIDTH2%x%HEIGHT2%+%TLX2%+%TLY1% %SOURCEIMGPATH%right.jpg
echo 0,0,1,1 %WIDTH1%,%TopOffset%,%WIDTH1%,0 0,%HEIGHT1%,0,%HEIGHT1% %WIDTH1%,%BottomOffset%,%WIDTH1%,%HEIGHT1%
rem ******* Left page ********
rem Crop left image:
rem echo ---------- %MAGICKPATH%convert %SOURCEIMGPATH%%SOURCEIMGNAME% -crop %WIDTH1%x%HEIGHT1%+%TLX1%+%TLY1% c:\temp\left.jpg
%MAGICKPATH%convert %SOURCEIMGPATH%%SOURCEIMGNAME% -crop %WIDTH1%x%HEIGHT1%+%TLX1%+%TLY1% left.jpg
Rem Adjust left image (fix perspective distortion):
%MAGICKPATH%convert left.jpg -virtual-pixel white -distort Perspective "0,0,1,1 %WIDTH1%,%TopOffset%,%WIDTH1%,0 0,%HEIGHT1%,0,%HEIGHT1% %WIDTH1%,%BottomOffset%,%WIDTH1%,%HEIGHT1%" left-ok.jpg
rem ******** Right page *******
rem Crop right image:
%MAGICKPATH%convert %SOURCEIMGPATH%%SOURCEIMGNAME% -crop %WIDTH2%x%HEIGHT2%+%TLX2%+%TLY1% right.jpg
Rem Adjust right image (fix perspective distortion):
%MAGICKPATH%convert right.jpg -virtual-pixel white -distort Perspective "0,%TopOffset%,0,0 %WIDTH2%,0,%WIDTH2%,0 %WIDTH2%,%HEIGHT2%,%WIDTH2%,%HEIGHT2% 0,%BottomOffset%,0,%HEIGHT2%" right-ok.jpg
Now, let's think about pages not being exactly straight, but a little bended: how do I manage this? Isn't there any "polyline distortion" available in imagemagick? Splitting a page in a dozen of "straight sectors" does not look like the best solution...
![Sad :(](./images/smilies/icon_sad.gif)