topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Monday March 18, 2024, 10:08 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: NANY 2012 - RELEASE: PerceptualDiff GUI  (Read 14106 times)

JoTo

  • Super Honorary
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 236
    • View Profile
    • Donate to Member
NANY 2012 - RELEASE: PerceptualDiff GUI
« on: December 26, 2011, 01:31 PM »
NANY 2012 Entry Information

Application Name PerceptualDiff GUI
Version 1.0
Short DescriptionBatch compare two branches of image files in a human visible (perceptual - not binary) way. Move and Rename files depending on match results
Supported OSes Windows XP/Vista/7
Setup Filehttp://www.jotosoft.de/perdiffgui
System RequirementsNothing special. Its a portable app!
Author InfoMost regular DoCos know me. And others i won't chase away with any picture of me :)
DescriptionInspired 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)
ScreenshotsPDiffGUI_InAction.pngNANY 2012 - RELEASE: PerceptualDiff GUI
InstallationNo installation needed. It's a portable app. Just unpack and run the exe file.
Using the applicationMostly self explanatory. For more information about Perceptual Diff utility, please see the above mentioned Homepage of Hector Yee.
UninstallingTo uninstall, just delete the program folder again.
Known IssuesNone YET! :)

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

Happy perceptual comparing
JoTo
« Last Edit: December 29, 2011, 01:58 AM by JoTo »

cranioscopical

  • Friend of the Site
  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 4,776
    • View Profile
    • Donate to Member
Re: NANY 2012 - Pledge: PerceptualDiff GUI
« Reply #1 on: December 26, 2011, 03:08 PM »
Looks like nice work, JoTo!  :Thmbsup:

steeladept

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,061
    • View Profile
    • Donate to Member
Re: NANY 2012 - Pledge: PerceptualDiff GUI
« Reply #2 on: December 26, 2011, 05:30 PM »
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.

kyrathaba

  • N.A.N.Y. Organizer
  • Moderator
  • Joined in 2006
  • *****
  • Posts: 3,200
    • View Profile
    • Donate to Member
Re: NANY 2012 - Pledge: PerceptualDiff GUI
« Reply #3 on: December 26, 2011, 05:52 PM »
Nice, Joto, and I echo what steeladept suggested about offering it back to the pdiff devs.
« Last Edit: December 27, 2011, 07:49 AM by kyrathaba »

JoTo

  • Super Honorary
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 236
    • View Profile
    • Donate to Member
Re: NANY 2012 - Pledge: PerceptualDiff GUI
« Reply #4 on: December 27, 2011, 12:15 AM »
Hi DoCos,

firstly let me thank you for the kind words.

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?

Greetings
JoTo

steeladept

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,061
    • View Profile
    • Donate to Member
Re: NANY 2012 - Pledge: PerceptualDiff GUI
« Reply #5 on: December 27, 2011, 11:27 PM »
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. 

JoTo

  • Super Honorary
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 236
    • View Profile
    • Donate to Member
Re: NANY 2012 - Pledge: PerceptualDiff GUI
« Reply #6 on: December 27, 2011, 11:53 PM »
Hi steeladept,

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.

Greetings
JoTo

steeladept

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,061
    • View Profile
    • Donate to Member
Re: NANY 2012 - Pledge: PerceptualDiff GUI
« Reply #7 on: December 28, 2011, 12:34 AM »
I'm just glad we can help  :D

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.