Skip to content

Add HDRMerge #164

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
May 7, 2019
Merged

Add HDRMerge #164

merged 11 commits into from
May 7, 2019

Conversation

BzKevin
Copy link
Contributor

@BzKevin BzKevin commented Feb 13, 2019

Adds a plugin for HDRMerge capabilities. This should be cross-platform compatible.

@supertobi
Copy link
Contributor

I have no experiences with HDRMerge, could you perhaps add a folder with an example image set for testing?
@wpferguson could you have a look into the cross platform stuff?

@BzKevin
Copy link
Contributor Author

BzKevin commented Feb 15, 2019

I could not attached due to file size/type so here is a link to some raws for testing:
https://drive.google.com/drive/folders/18RuMOg-iWg9d0xR_TqA2TgIYu4iPa-HA?usp=sharing

HDRMerge is basically supposed to take in a stack of bracketed raw photos and merge them in to a single DNG with a wide dynamic range.

Now only checks for binary proper install once the functionality of the program is actually utilized. This avoids to many external command calls at dt startup just to check if certain things are installed.
I now understand how preferences work better and have removed the extraneous widgets which were doing nothing
@BzKevin
Copy link
Contributor Author

BzKevin commented Feb 25, 2019

Let me make the few changes requested here. Similarly, I have a much better grasp on LUA and the dt API then when I first wrote this, so I may take some time to clean a few other things up. I also had some glitchy behavior on my Win 10 dt 2.6 machine the other day I need to investigate. I'll update back here with changes.

BzKevin added 2 commits March 3, 2019 15:48
After experiencing some issues after upgrading to dt2.6 I decided it would be worthwhile to refactor the code for more reliable performance. Specifically the script would crash dt when attempting to apply a style on import and sometimes just fail to run. I have refactored this in a manor that should make it more logical for future users to add/maintain as applicable. 

Refactored script has only been tested on Windows 10 w/ dt2.6. Hopefullt all cross-platform aspects have been maintained.
I have added comments throughout, mainly to the functions
I improved the performance of the CleanSpaces() function
Improved communication to user via dt.print()
@BzKevin
Copy link
Contributor Author

BzKevin commented Mar 4, 2019

I have uploaded a refactored version.

A few weeks back, after upgrading to dt 2.6 I had some issue with my enfuseAdvanced script. That code was a mess and a hack-job from Holger Klemms original so troubleshooting was a nightmare. I decided it was best to refactor that code and developed a clear structure for programs and GUI elements. (I'll be making a PR for the refactored enfuseAdvanced soon, once I've got more testing on it). I maintained that same structure in this newly refactored HDRMerge.

The new structuring was probably overkill for this relatively simple script, but I am hoping the consistency across scripts will prove useful in the long run and make maintenance and understanding easier.

@BzKevin
Copy link
Contributor Author

BzKevin commented Mar 8, 2019

Just a note that I'll be working on modifying how the executable gets requested from the user. I have suddenly gotten busy with other stuff, so this may take me a bit of time to get around to.

BzKevin added 4 commits March 12, 2019 11:19
The GUI is now made of a stack which has two boxes in it. One box contains all the normal GUI elements, the other contains a file chooser button and a normal button to call an update routine. This box is only displayed if an issue is found. I decided to track the install status via a preference boolean, rather than calling df_check_if_bin_exists at startup every time. I do this because on my windows PC I was starting to get slow startups with too many scripts installed and many many flashing CMD windows at startup as well, which was a nuisance.
previous commit failed to actually utilize the newly created file chooser to set the path preference
Move the preference.write() call inside the for loop
@BzKevin
Copy link
Contributor Author

BzKevin commented Mar 13, 2019

These latest commits are ready for review. This incorprates changes which eliminate the executable chooser in preferences and instead moves it into the module's GUI.

@supertobi
Copy link
Contributor

Do you plan to mark the sting for translation? This is something I would say is missing.

@BzKevin
Copy link
Contributor Author

BzKevin commented Mar 13, 2019

Do you plan to mark the sting for translation? This is something I would say is missing.

Yea, I do need to do that still.

EDIT: done now

@BzKevin
Copy link
Contributor Author

BzKevin commented Mar 26, 2019

@supertobi or @wpferguson I'm pretty sure this latest version of the script is all good to go. Have a look when you all get a chance

@wpferguson
Copy link
Member

My head's been in "code mode" for the last few weeks while I've been trying to finish the API extensions. That's done now. I have a couple of life things to take care of that I put off while coding, but I should have those all cleaned up by the start of next week so I can tackle the PR list again.

@supertobi I've been thinking of ways to use the tools on this site such as the projects and wiki to try and communicate better with the developers/users. We could use the project tools to track each PR through the "stages" of acceptance. It might also help us "formalize" the process somewhat so that we're not so hit or miss (at least me). I know that when I'm jumping back and forth I sometimes forget where I was and end up repeating my work. @BzKevin you're welcome to chime in on this as well as any other developers/users.

@BzKevin
Copy link
Contributor Author

BzKevin commented Mar 26, 2019

@wpferguson no big rush from my standpoint, just wanted to make sure you all were aware I had made what I think to be the last of changes for a while.

I'm unfamiliar with those aspects of Github, I'll take a look and familiarize myself with them so I can offer an informed opinion. Ironically, at my day job we are working heavily to nail down proper processes via a new system we've just switched over to.

@BzKevin
Copy link
Contributor Author

BzKevin commented May 7, 2019

Just a reminder that this should be good to go.

@supertobi
Copy link
Contributor

This looks good to me. If there are still problems we can fix it later. I'll merge it now.
@wpferguson I hope this was OK for you.

@supertobi supertobi merged commit 7cc58d9 into darktable-org:master May 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants