Jump to content

Tanel

Members
  • Posts

    205
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Tanel

  1. HDR imaging plugin has been requested by some people here, but as far as it is not available I thought I’d drop in a tutorial.

    You can learn the backround of HDRI (high dynamic range imaging) here:

    http://en.wikipedia....ki/Tone_mapping

    http://en.wikipedia....mic_range_image

    http://cambridgeinco...namic-range.htm

    Technique described in my tutorial is entirely improvised, but it works well for me, giving a good amount of control over the process and results.

    Some inspiration was provided by “The Layer Mask” technique described here. Since there is no layer mask in PdN yet, we will use two excellent plugins instead: Curves+ and Gaussian Blur+.

    Particular curve shapes and blur amounts were selected to match my sample image. Take it as a rough guideline only; feel free to propose improvements! Below sample images are 16% size screenshots, actual processing was made on fullsize 6MP image.

    I will blend three differently exposed images:

    hdr0.jpg

    First image from the left is the original photo: camera was set to expose for highlights (spot metered from bright sky with +2 stops exposure compensation). Image was developed from raw file with no exposure compensation (note: raw file was developed to 8-bit tif-s with other software).

    Second image was developed from the same raw file with exposure compensation of +1.3 stops to provide correct midtones.

    Third image was developed from the same raw file with exposure compensation of +2.5 stops to provide correct shadows.

    Obviously the dynamic range of the scene exceeds the capabilities of camera for a single jpg capture. But there are huge resources in the shadows with raw file (alternatively, in such static scene, the three separate images could have been shot using a tripod).

    To blend a HDR image we will use highlights from the first (darkest) image, midtones from the second one and shadows from the third (brightest).

    Note that in order to obtain natural look, the highlights should be kept on bright side and shadows on the dark side. Don’t overdo it by lifting all levels to the middle!

    Preparation:

    Open the images on layers and organize: dark image layer (first one in my sample) to the bottom, middle one to the middle, bright one to the top. Ensure all layers are checked.

    Workflow:

    Step1: tone mapping

    In this step I will remove overexposed areas from bright images by turning those areas transparent. That will allow lower layers to show up on those areas.

    a) Select the top layer (the brightest image).

    Start Curves+ plugin from adjustments menu and apply a curve similar to the one shown below in order to remove midtones and highlights from top layer (Advanced mode, In: Luminosity, Out: Alpha) [download a sample curve to load into your Curves+: http://www.hot.ee/ta...r-curve_top.xml]

    Note: this curve type adjusts transparency/opacity of pixels based on their brightness. You may find other curve shape to better match your images.

    hdr-curve_top.gif

    B) Select the middle layer.

    Start Curves+ plugin from adjustments menu and apply a curve similar to the one shown below in order to remove highlights from middle layer (Advanced mode, In: Luminosity, Out: Alpha) [download sample curve to load into your Curves+: http://www.hot.ee/ta...r-curve_mid.xml]

    hdr-curve_mid.gif

    At this point your image probably looks quite coarse and artificial. Don’t worry, we are not finished yet.

    Step 2: smoothing the transparency blend

    a) Select top layer and Open Gaussian Blur Channel plugin from Effects>Blurs menu. Dial in Alpha blur with amount of 10. Repeat (Ctrl+F) Alpha blur two times (total 3 times of Alpha blur on this layer).

    B) Select middle layer and Open Gaussian Blur Channel plugin from Effects>Blurs menu. Run Alpha blur total 3 times on this layer as well.

    Note: This step especially improves fine dark detail or sharp edges against bright backrounds (my sample image has a lot of those). You may find larger or smaller blur amount and repeat times more appropriate for different types of images.

    We are almost there:

    hdr4.jpg

    See how the layers look like on their own:

    hdr3.jpg

    On the top layer (3rd image) only shadows are visible while transparent area (represented by the “checkerboard”) lets below layers to show up. On the middle layer shadows and midtones are visible but only midtones can show up through the top layer. From the bottom layer (1st image) only the brightest areas can show up through the middle and top layer.

    Step 3: fine toning

    Here you are actually free to run adjustments like levels, saturation, contrast etc to your own taste – either on each layer separately or globally after merging. In my example I preferred to reduce levels on top layer to give shadows more natural look and improve overall contrast.

    When it looks fine, flatten image & save.

    Done! This is the best result I could do this time, representing what I actually saw in this scene:

    hdr5_ready.jpg

    Endnote: you can also merge just two images instead of three – sometimes it’s enough. If you do so then ignore the middle layer part of from my tutorial (marked with “B)” in step1 and step2).

    8)

  2. No, the problem is not the alpha level, that calculates fine. The problem is when changing from alpha 0 to something else, the color of the pixel is undefined. I solved the problem in this plugin: http://paintdotnet.12.forumer.com/viewtopic.php?t=3285 by making the color of transparent pixels the secondary color. Maybe that would work here as well.

    Note that color information is still there, if transparency has been achieved with Eraser tool (or even with your Transparency plugin). I would like to keep this image information intact (not replaced with single color). So that if you reduce transparency for Erased or Transparency'ed pixels then the "hidden" picture becomes back visible. The new Gaussian Blur Channel plugin works like this now and I like it.

    Maybe you could fix this also in the Transparency plugin: so that if you use Transparency twice - first turned selection fully transparent then in 2nd run turn back to opaque, you would finsh up with the original picture. The "really empty" pixels in PdN are actually white, are'nt they (R=255, G=255, B=255, Alpha=0). So just treat those as white?

  3. Well, I don't know if I did this right, but here ya go:

    Wow, that was fast!

    Thank you, it works well at first glance :)

    One limitation that I haven't worked out yet... You can't blur onto a transparent pixel. I'm just not sure what to do in that case yet.

    As a "dirty" workaround, maybe just replace alpha 0 with 0.01 or something in the code before blur calc? Or add 0.01 to everything...

  4. Hello,

    I'd like to have tool that applies blur to each color and alpha channel separately. Not sure if that is possible but worth to ask...

    I am especially interested in alpha (transparency) blur which should be very useful in some image blending techniques. But why not include all color channels then.

    Below is my sketch of possible UI, just to show the concept (I "borrowed" main part of this image from Illnab1024's Advanced Greyscale plugin UI).

    Each slider changes amount of blur on it's dedicated (monochrome) color plane.

    channel_blur.gif

    Possible enhancements could include drop-down option box for blur type (gaussian / fast / etc), and maybe even color space options (RGBa / Lab / ?)

    Thanks,

    Tanel

  5. Ctrl+Shift+A is a convenient, one-hand-only shortcut key to reset to 100%.
    ... with a program that more often has scrolling horizontally than vertically...

    The convention is that the mouse wheel scrolls up and down, and that modifier keys change that.

    May I suggest few UI improvements, useful for images larger than screen:

    #a) Mouse wheel scrolls horizontally when mouse pointer is held over horizontal scroll bar (Opera internet browser works like that).

    #B) Ctrl+Mouse wheel click zooms to 100%, moving the mouse aiming point into the center of screen.

    #c) Hold down mouse wheel to pan image (I really miss panning).

    #d) F11 toggle full screen view (I really miss full screen view).

    Hope it makes sense :)

  6. Ctrl+Shift+A is a convenient, one-hand-only shortcut key to reset to 100%.
    ... with a program that more often has scrolling horizontally than vertically...

    The convention is that the mouse wheel scrolls up and down, and that modifier keys change that.

    May I suggest few UI improvements, useful for images larger than screen:

    #a) Mouse wheel scrolls horizontally when mouse pointer is held over horizontal scroll bar (Opera internet browser works like that).

    #B) Ctrl+Mouse wheel click zooms to 100%, moving the mouse aiming point into the center of screen.

    #c) Hold down mouse wheel to pan image (I really miss panning).

    #d) F11 toggle full screen view (I really miss full screen view).

    Hope it makes sense :)

  7. Features to come (eventually): CMYK, Alpha(Luminosity), dynamic histograms, Alpha(CMYK)

    Feature request: Saturation Curve

    Hi,

    First, I have to say that Curves+ a wonderful plugin already, featuring many possible uses!

    I just got an idea that could most easily fit into this plugin, and I have no coding skill to test the concept myself.

    The concept is to implement a saturation transfer map, with axises scaling from 0, 0 (% of saturation) to 100, 100 (% of saturation).

    By changing the curve, pixel's saturation would be transferred from initial saturation (%) to destinated saturation (%).

    The only obstacle will probably be 0% saturated input pixels (pure black/grey/white), which cannot be lifted anywhere. But I think it can be worked around with a simple condition line in code, something like: IF(input<0.01% THEN do nothing, ELSE follow curve).

    In my vision this plugin could be used for editing photos, for example lifting the color of dull landscape, while maintaining already-good color of blue sky.

    I know that this kind of effect can be achieved with some other plugins around, but handy Curves+ would be my tool of choice any time!

    Possibly I missed some nuances but basically, what do you think?

    Here is a sketch of possible UI:

    saturation_curve.gif

  8. Features to come (eventually): CMYK, Alpha(Luminosity), dynamic histograms, Alpha(CMYK)

    Feature request: Saturation Curve

    Hi,

    First, I have to say that Curves+ a wonderful plugin already, featuring many possible uses!

    I just got an idea that could most easily fit into this plugin, and I have no coding skill to test the concept myself.

    The concept is to implement a saturation transfer map, with axises scaling from 0, 0 (% of saturation) to 100, 100 (% of saturation).

    By changing the curve, pixel's saturation would be transferred from initial saturation (%) to destinated saturation (%).

    The only obstacle will probably be 0% saturated input pixels (pure black/grey/white), which cannot be lifted anywhere. But I think it can be worked around with a simple condition line in code, something like: IF(input<0.01% THEN do nothing, ELSE follow curve).

    In my vision this plugin could be used for editing photos, for example lifting the color of dull landscape, while maintaining already-good color of blue sky.

    I know that this kind of effect can be achieved with some other plugins around, but handy Curves+ would be my tool of choice any time!

    Possibly I missed some nuances but basically, what do you think?

    Here is a sketch of possible UI:

    saturation_curve.gif

  9. I've got a plugin that does something similar to your idea.

    The effect dialog gives a 'thumbnail' of the current layer; if you click the mouse on a point within the thumbnail, then the effect will try to make that point a gray color...

    You can get it here White Balance Prototype Plugin.

    IMPORTANT: It's still very much a prototype...

    As always, I'd be interested to get some feedback.

    Ed

    Ed, this looks nice and your plugin gives fairly good results, except for areas that include channel clipping.

    For example if there is severe blue shift with areas having B=255 then blue is not reduced there.

    You will understand what I mean when you try to correct this image here (I have kept it as a good sample of really bad WB).

    Take the "gray reading" from the sidewalk surface and whole picture becomes nicely balanced except restaurant wall, because it has clipped blue.

    I agree a logic that clipped white should not be shifted, but I think that in case of just a single clipped channel the pixel needs to be adjusted.

    Would it be possible to implement WB adjustment so that ONLY pixels having EVERY channel value over 250 (clipped white basically) will not be shifted?

  10. Hello,

    I use Levels quite often to tune exposure, brigtness or whitebalance of my photos.

    I would like to point out annoyance (error?) in Levels Adjustment UI.

    The numeric scale of output gamma gives result upside down: increasing output gamma number (e.g. from 1.0 to 1.2) by clicking UP arrow turns picture darker, meaning actually it REDUCES gamma. And vice versa. In my opinion clicking UP arrow should work in same direction as moving slider up (brighten image)! Currenly yes, it does increase the number, but actual result is negative. Every other software that has Gamma function, increases brightness with +gamma.

    Also, it would be helpful if output gamma slider and preview image would change simultaneously if I am changing the gamma by number (not by slider). Currently slider does not move at all and preview image changes only after I click some other place on adjustments panel.

    As a summary, following 3 points need improvement IMHO:

    - Numeric scale of output gamma to give correct result (increasing gamma number should turn image lighter and move slider up).

    - Gamma slider and preview image to change instantly when gamma number is changed.

    - As pointed out by an earlier guest, gamma scale should have exactness of 0.01 instead of 0.1.

    Also I have noticed slight malfunction with Output top slider: when changing by number, slider does not move and preview image does not change instantly (while all other sliders DO move by changing number). This could also be fixed.

    These few errors are something that I can get used to, but still annoying (especially Gamma issue).

    Otherwise REALLY excellent tool.

    Thank you,

    Tanel

×
×
  • Create New...