Tuesday, September 27, 2011

Taking good HDR Pictures

Tips on good HDR pictures

I am copying it to have a good reference

Source : http://www.lightstalking.com/hdr-primer

  1. Always use aperture priority mode.
  2. Always utilize the lowest ISO possible to reduce noise.
  3. Any errors introduced into the work-chain will always run the entire path from the point of introduction.
  4. Reduce or eliminate errors by recognizing common or frequent ones and become cognisant during the workflow.
  5. Perform as much of the “heavy lifting” as possible in the HDR merge/tone-mapping application.  We use Photomatix Pro.

Aperture Priority Mode
Most modern DSLR cameras give the photographer the ability to select several different “priority” modes.  In the holy trinity of camera settings, being ISO, shutter speed and aperture setting (f/stop), if you select aperture priority mode it allows you to specify the f/stop and ISO, and the built in light meter will automatically select the correct shutter speed for you.  If you are in shutter priority mode, you would select ISO and shutter speed, and the built in meter would automatically set the f/stop for you.
I always use aperture priority.  The reason for this is it will create the most crisp and detailed merge possible as each frame, referred to as brackets, will be the identical focus and depth of focus.  If you were to go with shutter priority, each bracket would have a different f/stop and thus a different depth of focus.  This makes for much less clarity in the final merged result.
From here for me, the tricky part is selecting the right f/stop and ISO setting to achieve the result I am going for.  I find that sometimes I have to increase the ISO to get faster shutter speeds to avoid motion blur.  For the style of photography that we do, moving objects like birds and foliage are our biggest nemesis.  I tend to shake my fist at the wind.
Lowest ISO
I always try to use the lowest ISO I possibly can to reduce noise and produce better quality results.  The more noise that is evident in the source files, the more noise you’ll have in your output.  But, as mentioned before, motion is the hardest thing to compensate for with our style of imagery, and therefore we sometimes have to forgo using 100 ISO to offset external lighting and movement issues.
Errors In The Chain
Any time an error is introduced into the work-chain, that error follows forward to the end of the chain; your final result.  This really drives us to be as accurate and careful through each step of the process to avoid or at least vastly reduce these errors.
For example, if I didn’t properly tune my settings during the image capture process and wind caused massive blur in the trees in my picture due to a slow shutter speed, I cannot correct that.  This error will follow through to the bitter end.  These images never make it “live” and end up archived on my long term storage never to be seen again.
Taking this concept further, if during the merge and tone-mapping step I blow out my whites on the histogram, those details are lost forever and cannot be corrected.  What this all comes down to is by the time I am finalizing my image in Photomatix to bring into my final post-processing software, it contains no major errors and has all the dynamic range I want… it just needs some tweaking to really bring it to life.
Reduce or Eliminate Common Mistakes
As I was going through (and continue to) my learning process, I started to notice common mistakes I was making that resulted in sub-standard image quality.  At this point I became aware of these issues and started to look for them before they were introduced into the work-chain.  I can honestly say that our percentage of internet ready images shot up when I started to do this.  You may believe this to be common sense, and I can`t really disagree, but it`s so important I felt it merited discussion.
Heavy Lifting in the Merge
I try to do as much heavy lifting as possible in the merge process.  When the image is loaded into my final post-processing software, no whites or blacks can be blown out, no ghosts can remain, no color banding can exist; these are things that cannot be remedied.
There are many settings, in Photomatix Pro these are represented as sliders, that the photographer can adjust in the tone-mapping phase.  This is a critical phase of image creation.  I have several sliders that almost always remain the same, and several that need to be manually adjusted for each image processed.  I cannot use batch processing, I must merge and tone-map each picture individually.  This is where the personal style comes into play.  Once I identified what I was trying to do with my HDR work, it became a matter of finding those settings that produced these results.
From this point, the final merged and tone-mapped image is saved as a TIFF file and brought into my final phase post-production software.  I only typically perform the following actions in this software, in this order:
  1. Remove any blemishes in the sky, usually perfect, tiny little circles that are darker than their surroundings.
  2. Adjust brightness and contrast, color saturation, and sharpness.
  3. Apply a minor filter that tends to shift the tone scale ever so slightly to a darker tone; I find this accentuates the light and shadow regions in our photos providing a better looking end result.
  4. Apply a high pass sharpen filter to accentuate the details, using a very low threshold setting to avoid over-sharpening.
That`s it.  We have our final image.

Sunday, January 30, 2011

Installing Mercurial on RHEL 5.5

Finally after a few attempts, I could install mercurial on RHEL.

Here are the steps I followed and thanks to a few forum posts, I found out my way through it.

So I tried all kinds of ways but what eventually worked was easy_install.

So this is what you need.

easy_install
python-setuptools

Downloaded the latest mercurial rpm.  Untar it.

Now if you dont have easy_install, install it by running the below command

wget http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c11-py2.4.egg#md5=bd639f9b0eac4c42497034dec2ec0c2b

Once you are done downloading run the below command

ronak@ronak ~ $ sudo sh setuptools-0.6c11-py2.4.egg
[sudo] password for ronak:
Processing setuptools-0.6c11-py2.4.egg
removing '/usr/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg' (and everything under it)
creating /usr/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg
Extracting setuptools-0.6c11-py2.4.egg to /usr/lib/python2.4/site-packages
setuptools 0.6c11 is already the active version in easy-install.pth
Installing easy_install script to /usr/bin
Installing easy_install-2.4 script to /usr/bin

Installed /usr/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg
Processing dependencies for setuptools==0.6c11
Finished processing dependencies for setuptools==0.6c11




If you see this, easy_install is installed on your system.

Now, remember you have the untar directory mercurial1.7 (or whatever you have).  Make sure you are at that location.

Run the below command

ronak@ronak ~ $ sudo easy_install mercurial-1.7/
ronak@ronak ~ $ sudo easy_install mercurial-1.7/
Processing
Running setup.py -q bdist_egg --dist-dir /usr/local/home/rpatel/mercurial-1.7/egg-dist-tmp-bHHAXk
zip_safe flag not set; analyzing archive contents...
mercurial.help: module references __file__
mercurial.lsprof: module references __file__
mercurial.commands: module references __file__
mercurial.extensions: module references __file__
mercurial.i18n: module references __file__
mercurial.templater: module references __file__
hgext.mq: module references __file__
Adding mercurial unknown to easy-install.pth file
Installing hg script to /usr/bin

Installed /usr/lib/python2.4/site-packages/mercurial-unknown-py2.4-linux-i686.egg
Processing dependencies for mercurial==unknown
Finished processing dependencies for mercurial==unknown


ronak@ronak ~ $ hg
Mercurial Distributed SCM

basic commands:

 add        add the specified files on the next commit
 annotate   show changeset information by line for each file
 clone      make a copy of an existing repository
 commit     commit the specified files or all outstanding changes
 diff       diff repository (or selected files)
 export     dump the header and diffs for one or more changesets
 forget     forget the specified files on the next commit
 init       create a new repository in the given directory
 log        show revision history of entire repository or files
 merge      merge working directory with another revision
 pull       pull changes from the specified source
 push       push changes to the specified destination
 remove     remove the specified files on the next commit
 serve      start stand-alone webserver
 status     show changed files in the working directory
 summary    summarize working directory state
 update     update working directory (or switch revisions)

use "hg help" for the full list of commands or "hg -v" for details
ronak@ronak ~ $

Hurray... You are done..!!!!


Yum

YUM (Yellow Dog Updater, Modified)

The Yellowdog Updater, Modified (YUM) is an open-source command-line package-management utility for RPM-compatible Linux operating systems and has been released under the GNU General Public License. It was developed by Seth Vidal and a group of volunteer programmers. Though yum has a command-line interface, several other tools provide graphical user interfaces to yum functionality.


Installing and Upgrading Packages with Yum

Install Packages, Upgrade packages and System upgrades
Update your package list
# yum check-update
Install a new package
# yum -y install compiz
-y flag allows unattended installation.
Update a single Package
# yum update gnome
Update several packages
# yum update nbserver nbweb-billing nginx
Update all installed packages
# yum update
Search for a package to install
# yum search ImageMagick
If you need a particular library, but don't know what package provides it, yum will find it
# yum provides compiz

Removing Packages through Yum

# yum remove compiz
# yum remove compiz gnome ImageMagick

Obtaining information of installed packages through Yum

# yum list compiz
# yum list | grep gnome
# yum info compiz
# yum list updates

Maintain Yum

# yum clean packages -- to delete all cached packages
# yum clean headers -- to force fresh download of package headers
# yum clean oldheaders -- to remove old headers that the system no longer needs
# yum clean all == remove cached packages and old headers, preserving all the current headers

RPMs

Red Hat Package Management


Installing RPMs

# rpm -i packagename

# rpm -ivh packagename
  -v adds verbose feedback, and -h draws progress hashmarks

# rpm -ivh --test packagename

Upgrading RPMs

# rpm -Uvh packagename

To test the package install without really installing it.
# rpm -Uvh --test packagename


Removing RPMs

#rpm -e packagename does the job 

# rpm -ev packagename

( You dont need to mention the entire package, (abcd-1.23.34.5.i386.rpm) just the label name (abcd).


Removing/Uninstalling multiple RPMs at once.

# rpm -ev packagename packagename packagename


If you dont want to check dependencies,

#rpm -ev --nodeps packagename


To test your command before uninstalling/removing
#rpm -ev --test packagename


Collecting information on Installed RPMs
Use RPM's querying features.  All the queries start with rpm -q.
# rpm -q compiz

# rpm -qa | grep ubuntu

Listing files in an installed package

# rpm -ql compiz



To list the documentation for an application, use

# rpm -qd ubuntu

To list the configuration files for a package, use

# rpm -qc compiz

Listing the configuration files for a command

# rpm -qcf /usr/bin/ssh


To list all the packages installed, use

# rpm -qa

To see what package a file belongs to, use

# rpm -qf /usr/bin/abcd

To display package information 

# rpm -qi packagename


RPM queries will not follow symlinks, and will report that the file is "not owned by any package"  To find the file that a symlink points to , use:

# namei ~/ronak

Collecting Information from RPMs that are not installed.

Listing documentation files
# rpm -qpd abcd.rpm


Listing all the files of the package:

# rpm -qp1 abcd.rpm

Listing dependencies this package requires, 
# rpm -qpR abcd.rpm


To see what this package provides

# rpm -qp --provides abcd.rpm


Finding recentally installed RPMs

# rpm -qa --last
If the list is too long, rpm -qa --last | head.


Rebuild RPM database

# rpm --rebuilddb


Recreate RPM database
# rpm --initdb