Most regular DoCos know me. And others i won't chase away with any picture of me

Description

Inspired by a request from DC member Tat1990, who dug up a nice utility named Perceptual Diff, which compares two images in a perceptual (respecting human vision) way for differences, the idea to this app was born. Tat1990 complained, that the Perceptual Diff utility is a hard to handle CLI application and lacks the capability to compare a whole branch (subtree) of images against another branch of images in batch mode. Also she was in need to move the images from branch1 (i.e. some new images you want to add to your collection) to branch2 (i.e. a "library" or your collection) under the subdir of the image of branch2 (your collection) that best match the actual image of branch1 (the new images to add), keeping all the original subdirs of the branch1 image. Furthermore she wanted to rename the image from branch1 following the best match image filename of branch2.

To help her out here, i wrote the PerceptualDiff GUI (Perceptual Diff Graphic User Interface) app, that firstly gives the possibility to nicely and easily handle all the parameters of the Perceptual Diff CLI utility with TextControls, SpinControls and Sliders. Secondly it adds move, rename and batch capability of an unlimited amount of image files processed unnattendedly. And lastly you get a nice logfile for the archives with all actions that PerceptualDiff GUI did or would have done. Moving and Renaming are not mandantory, so you can also just get a report of which images match best with which other.

And as this is a portable app that is self contained and don't need any installation you can use it everywhere just right out of the box.

After that i realized, that this maybe useful for others too and developed the quick and dirty thing up to a usable and showable application. And with the upcoming NANY event, that was my chance to join the game. And here it is.

A word about the Perceptual Diff utility. My app is just a convinient frontend to the Perceptual Diff utility of Hector Yee (http://pdiff.sourceforge.net). This utility uses a special comparing method that is not simply a binary byte-by-byte comparison. Rather this utility respects some rules of human vision and therefore compares the two images like a human would look at these pictures and decide if they are similar or totally different. The threshold for what is considered similar is adjustable. PerceptualDiff GUI always finds the BEST PERCEPTUAL MATCH of the images, depending on the given threshhold and based on the results returned by Hectors Perceptual Diff utility, comparing every picture from branch1 with every picture on branch2.

Features

Perceptual comparison. Not binary comparison

Unlimited amount of images to compare to each other. Whole directory trees (with subdirectories) can be processed

Unattended batch mode

Move and Rename actions can be enabled or disabled. So just do a comparison to get a report which image best match with which one without changing your data or let PDiff GUI take actions to move and rename files for you to the bestmatch locations (keeping the necessary parts of the original path)

File move and rename actions take care about filename collisions and rename/move with numbering where necessary

Easy setup of the CLI parameters of the Perceptual Diff utility with GUI controls

Save and load settings for reusing the same settings over and over again

Downsampling of the images to speed up the comparison process

Detailed logfile with all actions and results that can be saved for later use or for the archives

Portable application

Multilanguage (Englisch and German translations available for now - If anyone wants to do another language, please contact me)

Screenshots

NANY 2012 - RELEASE: PerceptualDiff GUI

Installation

No installation needed. It's a portable app. Just unpack and run the exe file.

Using the application

Mostly self explanatory. For more information about Perceptual Diff utility, please see the above mentioned Homepage of Hector Yee.

Uninstalling

To uninstall, just delete the program folder again.

Known Issues

None YET!

Suggestions are welcome. Hope this program is useful to anyone else than Tat1990.

JoTo - I admit I haven't downloaded it yet, but does this require I also download pdiff, or is pdiff included in the program download? Also, any plans to release this back to the project? I find so many front ends to make sourceforge projects easier are not always released back to the project and are a surprise to the project developers in some cases. Granted, some just reject it for a variety of reasons, but it is worth at least offering it as an addition if you haven't already.

Secondly, the package (not yet downloadable because i'm in the process of packaging and setting up a webpage for it right now) is self-conatined. So nothing else is needed to download. Just the GUI package and you are set.

Thirdly: I neither compiled against anything directly nor have i changed/added anything in the Perceptual Diff utility code. The 3rd party stuff is just included as separate precompiled binary exe and dll files, unchanged as i got them from the authors homepage in the package. So you can still use the Perceptual Diff utility standalone without my GUI and or unpackage again and get back the original package (well to be honest, i stripped the source code files and some compiling instruction textfiles from my distribution package).

And MOST IMPORTANT! Of course i contacted the author Hector Yee before i have included his exe file in my package, informed him what i've done and about the NANY event and offered him to send him a pre-release version to have a look at it. And Hector responded to me with the following words (copied from his eMail):

I'm pretty sure you can distribute it as there are debian and ubuntu packages with it already, so not a problem. Plus I give you permission to distribute it as well just in case. Thanks for doing this!

And of course i give appropriate credits for Hectors utility and the GPL freeimage.dll that Hector uses in the about dialog of my GUI. I also will inform Hector again, if the page for my GUI is up, so he can link to it, if he wants, on his utility page. I'd appreciate this too, as this would give my GUI more prominence and maybe help more users to use it.

I think with all that i have done all i can do to "Give the king what the king deserves" and i'm on the legal and morally bright side of life, isn't it?

Thanks for pointing that out and give me the chance to clarify and get more safety in not doing something wrong because some guys shared their thoughts about the legality. Any more concerns that you think i should consider?

I am sorry you took my questions differently, I didn't mean to imply you didn't. I knew you gave him full credit right up front and that you "only" (as you put it) made a front end GUI for a command line project. I got from your original statements everything you said (well except the part about whether or not the original was packaged in with your GUI or if they were separate). I just meant that since you did such a nice job and he has that package already, that DoCo members aren't the only ones who might want it and that Hector might want to host the GUI on his SourceForge site to make his program easier to use.

no reason for you to apologise. As i said, it was very welcome to see if there are any concerns about "in-box-packaging", as i'm a not a license expert at all. And using my "private think tank" (a.k.a. DonationCoder Community), is always fun.

Now its my turn to say sorry, that i didn't get your point.

Well, as i wrote i'm in contact with Hector, and if he wants i'd gladly hand him over the package to host it additionally, or link to it, whatever he prefers, but i will put up my (small) page anyway. I own a server where i can host my things and do this for all my projects all the time.

I release this as a free program without restrictions or nags, wether you donate or not, But i release only a pre-compiled binary and won't release it as open source though. Not because i don't want to change my mind in any way about the "free" in this project, but i want to avoid to document all the needed dependencies and compile instructions and whatnot, and most of all: My programming style is too awkward to show it to publid. And without the open source i don't think sourceforge makes any sense, isn't it?

Thanks again for taking your time to read and respond. Never thought ANYONE would ever look at it a single second.

I think this may prove a VERY useful program. Though I don't have as much need for it now as I used to when I worked in a print room. Everything sent to me was a TIFF or PDF, and few, if any programs could diff TIFF programs reliably. PDF's were better, but it was still cumbersome. What we needed was a visual, or as Hector calls it, perceptual diff engine. I didn't even know it was developed as I couldn't find anything at the time that would do what we wanted. Now that I know, and better, know where a good front-end for it is; I can see this as a very useful tool. It is, however, a very niche project and as such I hope you get a link on his page at least. It is something that people using his tool should know about so they can decide if they want to use it or not.