yuhhey / compimage Goto Github PK
View Code? Open in Web Editor NEWComposite image handling library
Composite image handling library
Given a valid sequence parser configuration,
After the parsing is executed,
As a user I want to see to thumbnails of the image sequence when I click on a sequence node in the treectrl.
CompositeImage module implements generators to execute steps of the workflow. There are 2 generators:
These generator based operations are linked to the popup menu of both the directory and the image sequence nodes in the TreeCtrl.
The symlink handling on a directory node is not implemented.
The recursive execution of the symlink generator shall be fitted to the threaded operation:
Using 'treeIterator' with the WorkerThread and the events is to be implemented.
qwijdaksjksaljfsklfj
Config related menuitems can be removed. It became obsolete due to GUI changes.
The weak condition
panorama sequences are shot with the same
There is also short time delta between images.
Must be a race condition with the termination of threads and executeNext counting the active threads. threading.join could be used in the onCommandUpdate thread callback.
In the current implementation
This setup cries for macros. E.g. $basename:
Target dir: /tmp/$basename
prefix: $basename
would create the following directory structure /tmp/{os.path.basename(path)} when recursively processed. The HDR output files would be named {os.path.basename(path)_#.TIF
Right now the browsing is limited to the subtree of the original root of the treectrl.
The root item shall be editable to access any files in the filesystem.
Option B could be a to create a special root expander which has a popup menu item to open a directory dialog.
Context manager: http://stackoverflow.com/questions/431684/how-do-i-cd-in-python
Popup window to warn!
There are long lasting operations:
This shall not affect the responsiveness of the UI. As many operations as possible shall be available, however the availability of operations can be limited. Examples:
None of the commands are ready for parallel execution therefore stochastic failure happens. Commands shall be executed one by one.
All of the subdirs in any of the subtrees of the treectrl shall use the configuration specified by the config item in the treectrl closest to the node on the way to the root of the tree.
At least the prefix shall be updated to the actual used one.
iso=50
aperture=9 or 10
mirror lockup on
shot timer 2 sec
The worker thread, the one that do not run the wxpython mainloop executes GUI operation. It causes random crashes. Find where it happens and fix it.
New button to cancel the recursive operation being executed is needed.Operations on a single tree item can not be cancelled easily (i.e. without modifying the underlying module implementation).
Even if jumping from one input field to another using 'tab', the underlying hdr_config is not updated with the field.
If enter pressed, then the focus remains in the same input field.
When directly called with an image list if SingleImages stochastically fails to find all sequences. Calling ParseDirList of ParseFileList works just fine.
roller-?_16.png files contain the phases of the animation.
Those shall be loaded in the init
The timer and callback are set up, so after loading the images it can be tested.
http://docs.python.org/2/library/pickle.html load the images once, then dump the datatypes into string. Store the strings in the file and use to reconstruct the images. No external image files are needed.
Remove the result of the previous parse and parse again with the possibly new parameters.
Checks the value of images for the same or a predefined value. Checking for same value is identified using 'None' for the predefined value parameter.
The parameters used in the composite image search are displayed as items in the treectrl.
An object to represent the config is needed.
A way to expand it in the treectrl also needed.
The command interface in TreeBuilder supports stopping and specifying single or multiple thread execution.
There are different types of items in the treectrl. Operations on the items can be accessed through a popup menu. We shall define different menus for different item types. The actual item info shall be passed to the menu callback.
Max a single config object is paired with each directory. There is only one prefix field. Parsing a directory might result e.g. HDR and panorama image sequences. Any operation will use the single prefix
Image sequence specific extension of the prefix shall be the solution.
First upper case, then lower case in alphabetic order.
Having a huge directory structure of images with possible sequences, as a user I want to see if a directory contains and image sequences.
The directories without sequences still shall be visible,because configuration changes might result new sequences.
Should the external commands used by HDRGenerator fail, the status of the corresponding HDR item is not updated.
It is possible that more than one directory is parsed using the same HDRConfig object. The output folder of those execution is the same folder.
The indexing of the HDR output filenames starts from 0 for each folder->overwriting of output files happen.
HDRConfig object shall have a getNextIndex method to return the indices to be used.
HDRConfig makes sure these are unique as long as the HDRConfig object exists.
It proved to be difficult to use with long directory hierarchies.
Right click commands shall expand the directory before executing the actual task.
The output prefix field in the config window and the tree item show different name for the pano.
Generation does not use the config.
*Config object instantiate TimeStampChecker with maxdiff=7. It is hardcoded now.
The following operations shall be supported:
Magic lantern (ML) HDR sequences can be identified using the shell script generated automatically during shooting by ML. Bracket mode and bracket value exif fields are not set, there the generic checkers miss these images.
.pto shall be generated using the config spec.
The key to the config dictionary is the directory or the target directory of the identified image sequence. This was fine until only HDR sequences could be identified.
Panorama and focus stack sequences can be identified too. So a single index/directory is not enough.
Solution idea:
/path/HDR/outputpath_hdr
/path/Pano/outputpath_pano
As an end user I want to save the hdr configuration on directory basis.
[Simple implementation: pickle hdr_config_dict]
If a worker thread executes GUI operations, then the application crashes randomly (described here: https://groups.google.com/forum/?fromgroups=#!topic/wxpython-users/6rKyY_ICUSc)
Therefore the worker thread shall request the GUI operations from the main thread through custom made events.
Error message:
TypeError: descriptor 'lower' requires a 'str' object but received a 'unicode'
DirDialog shall be used to change target dir column item. hdr_config_panel removed from the user interface.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.