PostProcessor v1.0 released!

General discussion about software packages and releases, new software you've found, and threads by programmers and script writers.

Moderator: peterZ

User avatar
rob
Posts: 773
Joined: 03 Jun 2009, 13:50
E-book readers owned: iRex iLiad, Kindle 2
Number of books owned: 4000
Country: United States
Location: Maryland, United States
Contact:

PostProcessor v1.0 released!

Post by rob »

This is the release of PostProcessor v1.0, an operating system independent program which takes images directly from your camera and converts them (hopefully) to nice deskewed, dekeystoned color and black-and-white images.

Download the zip file, and unzip wherever you want. The instructions are in the README.html file. READ THEM! Besides how to run the program, the instructions also give very important requirements for your camera images.

If you find any images that are not handled properly by PostProcessor, send them to me at the address in the Troubleshooting section of README.html.

I'll be releasing the source code later, at SourceForge, as soon as I decompress from writing and testing 9,000 lines of code.
Attachments
PostProcessor-1.2.zip
(282.74 KiB) Downloaded 1048 times
The Singularity is Near. ~ http://halfbakedmaker.org ~ Follow me as I build the world's first all-mechanical steam-powered computer.
User avatar
rob
Posts: 773
Joined: 03 Jun 2009, 13:50
E-book readers owned: iRex iLiad, Kindle 2
Number of books owned: 4000
Country: United States
Location: Maryland, United States
Contact:

Re: PostProcessor v1.0 released!

Post by rob »

Source code is now available here at SourceForge.
The Singularity is Near. ~ http://halfbakedmaker.org ~ Follow me as I build the world's first all-mechanical steam-powered computer.
jrichards
Posts: 22
Joined: 04 Mar 2014, 00:52

Re: PostProcessor v1.0 released!

Post by jrichards »

On both windows and OS X I get the same error.

This is the Error:

Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.sort(Arrays.java:1079)
at postprocess.Main.main(Main.java:641)


Not sure what I am doing wrong. Here is the command that I run:

java -Xmx1024M -jar PostProcessor.jar L IMG_6550.JPG

When I run it I am in the same directory as the PostProcessor.jar file.
User avatar
rob
Posts: 773
Joined: 03 Jun 2009, 13:50
E-book readers owned: iRex iLiad, Kindle 2
Number of books owned: 4000
Country: United States
Location: Maryland, United States
Contact:

Re: PostProcessor v1.0 released!

Post by rob »

Instead of:

java -Xmx1024M -jar PostProcessor.jar L IMG_6550.JPG

You need to specify the directory that IMG_6550.JPG is in:

java -Xmx1024M -jar PostProcessor.jar L some_directory
The Singularity is Near. ~ http://halfbakedmaker.org ~ Follow me as I build the world's first all-mechanical steam-powered computer.
User avatar
rob
Posts: 773
Joined: 03 Jun 2009, 13:50
E-book readers owned: iRex iLiad, Kindle 2
Number of books owned: 4000
Country: United States
Location: Maryland, United States
Contact:

Re: PostProcessor v1.0 released!

Post by rob »

I've released PostProcessor 1.1, and updated the file at the beginning of this post.

This version allows you to process a single image, or an entire directory of images. I added this feature because what jrichards was trying to do was perfectly reasonable :)
The Singularity is Near. ~ http://halfbakedmaker.org ~ Follow me as I build the world's first all-mechanical steam-powered computer.
jrichards
Posts: 22
Joined: 04 Mar 2014, 00:52

Re: PostProcessor v1.0 released!

Post by jrichards »

I am still running into problems for some reason. Now when I run the command it starts to execute and then fails. Here is the output:

jason-richardss-macbook:PostProcessor-1.1 jasonrichards$ java -Xmx1024M -jar PostProcessor.jar L /Users/jasonrichards/Desktop/Test/
Reading IMG_6548.JPG...done. (lefthand page)

Binarizing expanded image...

Determining skew and projection...
Cleaning page and greeking text...
Locating page and text block outlines...
Processing original image...
Page luminosity = 0.09952426
Binarizing page...
Exception in thread "main" java.lang.IllegalArgumentException: negative border added!
at jleptonica.PIX.addBorderGeneral(PIX.java:352)
at postprocess.Main.process(Main.java:579)
at postprocess.Main.main(Main.java:662)
jason-richardss-macbook:PostProcessor-1.1 jasonrichards$



Here is the picture that I am trying to process:
IMG_6548.JPG
(286.54 KiB) Downloaded 2749 times
User avatar
rob
Posts: 773
Joined: 03 Jun 2009, 13:50
E-book readers owned: iRex iLiad, Kindle 2
Number of books owned: 4000
Country: United States
Location: Maryland, United States
Contact:

Re: PostProcessor v1.0 released!

Post by rob »

Excellent (sort of). I'll take the image and see if I can improve the code!
The Singularity is Near. ~ http://halfbakedmaker.org ~ Follow me as I build the world's first all-mechanical steam-powered computer.
User avatar
rob
Posts: 773
Joined: 03 Jun 2009, 13:50
E-book readers owned: iRex iLiad, Kindle 2
Number of books owned: 4000
Country: United States
Location: Maryland, United States
Contact:

Re: PostProcessor v1.0 released!

Post by rob »

OK, there are a few problems with the image. Taking the pictures again will help:

1. Make the page fill more of the frame. The bigger the page, the better the final processed image. Try to make the page be at least 75% as tall as the entire image.

2. Insert a black piece of paper between the front and back covers and the text block. The problem here is that the shiny and colorful dust jacket is confusing the algorithm into thinking it is part of the page. In fact, this is probably a good idea for any hardcover book, and again will make the final image much better.

I can solve #1 within the program easily, but you will still end up with a worse final image. #2 is much harder, because now there are four categories for the program to look for: background, page, reflection, and dust jacket. Lots of work, and I'd have to contemplate the situation for a few weeks to figure out a solution. Or wait until 2025 for human-level AI (or so Ray Kurzweil says).

So try those and see what happens. I'll probably add the above suggestions to the README if they work for you!
The Singularity is Near. ~ http://halfbakedmaker.org ~ Follow me as I build the world's first all-mechanical steam-powered computer.
Carlos Pombo
Posts: 4
Joined: 04 Mar 2014, 00:52

Re: PostProcessor v1.0 released!

Post by Carlos Pombo »

@ rob
Thank you so much.
Tested your PostProcessor release 1.1
It works almost perfect with text pages without pictures. Can I to suggest you a very small adjustment?
Processor crops text too tight. Have tested pages with a small skew view (less than 90º orthogonal photo view) and found that processor crops last letter/letters from longer lines due to skew and found also some clipping in last bottom line. Can you manage crop to not be so tight? 2, 3 or 4 millimeters tolerance outside of actual crop maybe.

Now; unfortunately for me I need to work with high quality reproduction of color books.
What I'm doing now is to shot RAW, to use Adobe bridge to crop Left and Right pages (need to reposition crop individually for each page). After go to Photoshop to tune page densities with Levels tool fixing Black point and cleaning whites recording this as an Action and then go back tom Bridge to batch process L/R pages.
A tool like yours with crop function alone it was a fantastic gift for photographers like me.

my notes for DIY
book V cradle best angle is 86º
ideal lightind is 2 thungsten vertical with hood blocking periferical lighting
User avatar
rob
Posts: 773
Joined: 03 Jun 2009, 13:50
E-book readers owned: iRex iLiad, Kindle 2
Number of books owned: 4000
Country: United States
Location: Maryland, United States
Contact:

Re: PostProcessor v1.0 released!

Post by rob »

Hi Carlos,

Can you send me a sample page that shows the overtight cropping? I think adding a small margin would help, but I need to know why the text was cropped too much.

Thanks!
The Singularity is Near. ~ http://halfbakedmaker.org ~ Follow me as I build the world's first all-mechanical steam-powered computer.
Post Reply