I saw an interesting technique on a Website (farbspiel-photo.com) called Frequency Separation Retouching where you separate the photo into two layers, one for fine details and one for tones and colors (which is rendered a bit blurry).
Then the PS tool "Apply Image" is used to subtract the blurred image from the fine detail leaving a sort of High Pass image that can be adjusted for detail. After that, the "Linear Light" blending mod is used to blend the details layer with the tones & color layer.
It seems to me, this ought to be able to be done with PSP and I've been trying to duplicate this technique with PSP X6, but I haven't figured out suitable substitutes for "Apply Image" tool (I'm not certain I even know what it does, completely It seems to be a sort of anti-blend mode) and the "Linear Light" blend mode.
Am I on a fool's errand?
Frequency Separation Retouching
Moderator: Kathy_9
-
GlenBarrington
- Posts: 35
- Joined: Sat Jun 08, 2013 8:27 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: Lenovo Ideacentre 30020ISH 90DA
- processor: Intel Core i7 6700 3.4 GHz
- ram: 12 GB
- Video Card: Nvidia GEForce GT 730m
- sound_card: RealTec the rest unknown
- Hard_Drive_Capacity: 2 TB
- Monitor/Display Make & Model: HP Pavilion 27 XW IPS
- Corel programs: Corel PSP X8
-
LeviFiction
- Advisor
- Posts: 6831
- Joined: Thu Oct 02, 2008 1:07 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: Alienware M17xR4
- processor: Intel Core i7-3630QM CPU - 2_40GH
- ram: 6 GB
- Video Card: NVIDIA GeForce GTX 660M
- sound_card: Sound Blaster Recon3Di
- Hard_Drive_Capacity: 500GB
- Corel programs: PSP: 8-2023
- Location: USA
Re: Frequency Separation Retouching
Well, if Apply Image works the way I think it does you might be able to use Image -> Arithmetic to do the same. But, I don't think PSP has a comparison to Linear Light blend mode.
On the positive side there is more than one way to do something.
Photodrawken has actually posted a frequency separation tutorial here on the forums. Maybe it'll give you a few ideas.
http://forum.corel.com/EN/viewtopic.php?f=29&t=48518
On the positive side there is more than one way to do something.
Photodrawken has actually posted a frequency separation tutorial here on the forums. Maybe it'll give you a few ideas.
http://forum.corel.com/EN/viewtopic.php?f=29&t=48518
https://levifiction.wordpress.com/
-
GlenBarrington
- Posts: 35
- Joined: Sat Jun 08, 2013 8:27 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: Lenovo Ideacentre 30020ISH 90DA
- processor: Intel Core i7 6700 3.4 GHz
- ram: 12 GB
- Video Card: Nvidia GEForce GT 730m
- sound_card: RealTec the rest unknown
- Hard_Drive_Capacity: 2 TB
- Monitor/Display Make & Model: HP Pavilion 27 XW IPS
- Corel programs: Corel PSP X8
Re: Frequency Separation Retouching
Wonderful! Thanks!
-
photodrawken
- Posts: 684
- Joined: Wed Sep 26, 2012 8:40 am
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 16Gb
- Hard_Drive_Capacity: 324Gb
- Location: USA
Re: Frequency Separation Retouching
Argghh! Too bad the images aren't available on ImageShack anymore.
Hope the description of the procedure still helps....
Ken
Yes, I think it can be eeeeeasily done...
Just take everything out on Highway 61.
Yes, I think it can be eeeeeasily done...
Just take everything out on Highway 61.
Re: Frequency Separation Retouching
The procedure still works
When you start with a 16 bits TIFF-file it doesn't work; the colors first have to be reduced to 8 bits. The shortcut for that: CTRL+SHIFT+R
I have made a script for this procedure. You can paste it in Notepad and save it in C:\Users\YOUR_USERNAME\Documents\Corel PaintShop Pro\16.0\Scripts - Trusted
It takes some time to run and you have to fill in the values as described in the procedure the first time.
You'll get 3 pictures as a result; the script will ask for the first one to save it as a photoshop-file (as it contains layers). The other ones are temp-files which can be discarded.
The script:
from PSPApp import *
def ScriptProperties():
return {
'Author': u'Joop Verdoorn',
'Copyright': u'',
'Description': u'',
'Host': u'PaintShop Pro',
'Host Version': u'16.00'
}
def Do(Environment):
# EnableOptimizedScriptUndo
App.Do( Environment, 'EnableOptimizedScriptUndo', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# LayerDuplicate
App.Do( Environment, 'LayerDuplicate', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# Eigenschappen laag
App.Do( Environment, 'LayerProperties', {
'General': {
'Opacity': None,
'Name': u'Colour',
'IsVisible': None,
'IsTransparencyLocked': None,
'LinkSet': None,
'UseHighlight': None,
'PaletteHighlightColor': None,
'GroupLink': None,
'BlendMode': None
},
'BlendRanges': None,
'Path': (0,0,[],False),
'ArtMediaTexture': None,
'Effects': None,
'BrightnessContrast': None,
'ChannelMixer': None,
'ColorBalance': None,
'CurveParams': None,
'HSL': None,
'Threshold': None,
'Levels': None,
'Posterize': None,
'Vibrancy': None,
'Overlay': None,
'LocalToneMapping': None,
'Invert': None,
'HistogramAdjustment': None,
'FillLightClarity': None,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.Default,
'Version': ((16,0,0),1)
}
})
# Mediaan
App.Do( Environment, 'Median', {
'Aperture': 13,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# Copy
App.Do( Environment, 'Copy', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# PasteGraphicAsNewImage
App.Do( Environment, 'PasteGraphicAsNewImage', {
'CreateFromDropData': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# SelectDocument
App.Do( Environment, 'SelectDocument', {
'SelectedImage': 0,
'Strict': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# NegativeImage
App.Do( Environment, 'NegativeImage', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# SelectDocument
App.Do( Environment, 'SelectDocument', {
'SelectedImage': -1,
'Strict': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# LayerSetVisibility
App.Do( Environment, 'LayerSetVisibility', {
'Command': App.Constants.ShowCommands.Hide,
'Path': None,
'WorkingMode': 1,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.Default,
'Version': ((16,0,0),1)
}
})
# Arithmetic
App.Do( Environment, 'Arithmetic', {
'AllChannels': True,
'Bias': -128,
'Channel1': 0,
'Channel2': 0,
'ClipColorValues': True,
'Divisor': 1,
'Function': App.Constants.ArithmeticFunctions.Add,
'SourceImage1': 0,
'SourceImage2': 1,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# SelectDocument
App.Do( Environment, 'SelectDocument', {
'SelectedImage': 2,
'Strict': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# Copy
App.Do( Environment, 'Copy', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# SelectDocument
App.Do( Environment, 'SelectDocument', {
'SelectedImage': -2,
'Strict': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# PasteAsNewLayer
App.Do( Environment, 'PasteAsNewLayer', {
'CreateFromDropData': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# MultiObjectProperties
App.Do( Environment, 'MultiObjectProperties', {
'General': {
'Opacity': None,
'Name': None,
'IsVisible': None,
'IsTransparencyLocked': None,
'LinkSet': None,
'UseHighlight': None,
'PaletteHighlightColor': None,
'GroupLink': None,
'BlendMode': App.Constants.BlendMode.Overlay
},
'Effects': None,
'WorkingMode': 1,
'Path': None,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.AllAlways,
'Version': ((16,0,0),1)
}
})
# FileSaveAs
App.Do( Environment, 'FileSaveAs', {
'Encoding': {
},
'FileName': u'-fs.psd',
'FileFormat': App.Constants.FileFormat.PSD,
'FormatDesc': u'PSD Photoshop',
'WorkingMode': 0,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.AllAlways,
'Version': ((16,0,0),1)
},
'DefaultProperties': []
})
When you start with a 16 bits TIFF-file it doesn't work; the colors first have to be reduced to 8 bits. The shortcut for that: CTRL+SHIFT+R
I have made a script for this procedure. You can paste it in Notepad and save it in C:\Users\YOUR_USERNAME\Documents\Corel PaintShop Pro\16.0\Scripts - Trusted
It takes some time to run and you have to fill in the values as described in the procedure the first time.
You'll get 3 pictures as a result; the script will ask for the first one to save it as a photoshop-file (as it contains layers). The other ones are temp-files which can be discarded.
The script:
from PSPApp import *
def ScriptProperties():
return {
'Author': u'Joop Verdoorn',
'Copyright': u'',
'Description': u'',
'Host': u'PaintShop Pro',
'Host Version': u'16.00'
}
def Do(Environment):
# EnableOptimizedScriptUndo
App.Do( Environment, 'EnableOptimizedScriptUndo', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# LayerDuplicate
App.Do( Environment, 'LayerDuplicate', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# Eigenschappen laag
App.Do( Environment, 'LayerProperties', {
'General': {
'Opacity': None,
'Name': u'Colour',
'IsVisible': None,
'IsTransparencyLocked': None,
'LinkSet': None,
'UseHighlight': None,
'PaletteHighlightColor': None,
'GroupLink': None,
'BlendMode': None
},
'BlendRanges': None,
'Path': (0,0,[],False),
'ArtMediaTexture': None,
'Effects': None,
'BrightnessContrast': None,
'ChannelMixer': None,
'ColorBalance': None,
'CurveParams': None,
'HSL': None,
'Threshold': None,
'Levels': None,
'Posterize': None,
'Vibrancy': None,
'Overlay': None,
'LocalToneMapping': None,
'Invert': None,
'HistogramAdjustment': None,
'FillLightClarity': None,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.Default,
'Version': ((16,0,0),1)
}
})
# Mediaan
App.Do( Environment, 'Median', {
'Aperture': 13,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# Copy
App.Do( Environment, 'Copy', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# PasteGraphicAsNewImage
App.Do( Environment, 'PasteGraphicAsNewImage', {
'CreateFromDropData': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# SelectDocument
App.Do( Environment, 'SelectDocument', {
'SelectedImage': 0,
'Strict': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# NegativeImage
App.Do( Environment, 'NegativeImage', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# SelectDocument
App.Do( Environment, 'SelectDocument', {
'SelectedImage': -1,
'Strict': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# LayerSetVisibility
App.Do( Environment, 'LayerSetVisibility', {
'Command': App.Constants.ShowCommands.Hide,
'Path': None,
'WorkingMode': 1,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.Default,
'Version': ((16,0,0),1)
}
})
# Arithmetic
App.Do( Environment, 'Arithmetic', {
'AllChannels': True,
'Bias': -128,
'Channel1': 0,
'Channel2': 0,
'ClipColorValues': True,
'Divisor': 1,
'Function': App.Constants.ArithmeticFunctions.Add,
'SourceImage1': 0,
'SourceImage2': 1,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# SelectDocument
App.Do( Environment, 'SelectDocument', {
'SelectedImage': 2,
'Strict': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# Copy
App.Do( Environment, 'Copy', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# SelectDocument
App.Do( Environment, 'SelectDocument', {
'SelectedImage': -2,
'Strict': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# PasteAsNewLayer
App.Do( Environment, 'PasteAsNewLayer', {
'CreateFromDropData': False,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((16,0,0),1)
}
})
# MultiObjectProperties
App.Do( Environment, 'MultiObjectProperties', {
'General': {
'Opacity': None,
'Name': None,
'IsVisible': None,
'IsTransparencyLocked': None,
'LinkSet': None,
'UseHighlight': None,
'PaletteHighlightColor': None,
'GroupLink': None,
'BlendMode': App.Constants.BlendMode.Overlay
},
'Effects': None,
'WorkingMode': 1,
'Path': None,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.AllAlways,
'Version': ((16,0,0),1)
}
})
# FileSaveAs
App.Do( Environment, 'FileSaveAs', {
'Encoding': {
},
'FileName': u'-fs.psd',
'FileFormat': App.Constants.FileFormat.PSD,
'FormatDesc': u'PSD Photoshop',
'WorkingMode': 0,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.AllAlways,
'Version': ((16,0,0),1)
},
'DefaultProperties': []
})
-
AlanT
- Posts: 14
- Joined: Tue Aug 19, 2014 6:39 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: HP Probook 6570b
- processor: Intel i5-3210M
- ram: 16GB
- Video Card: HD4000
- Hard_Drive_Capacity: 256GB
- Monitor/Display Make & Model: HP Probook 6570b (1600x900)
- Location: Grand Rapids, MI
- Contact:
Re: Frequency Separation Retouching
I've also become a fan of frequency separation. My process is a bit different, and is not only easier, but also works with 16-bit images as well.
You start the same way, and create 2 duplicates of the image you want to edit. Rename the top one as "texture" or "high" and the other as "color" or "low". At this point, you will have 3 layers -- the original background plus 2 edit layers.
Now, select the texture layer and do a high-pass edge effect. Play with the settings so you retain the texture you want to keep and no more. In my case, (with 36 megapixel images of headshots) I tend to use settings around 5 to 9. Change the blend mode of this layer to hard light. At this point, the image will look "too sharp".
Next, select the color layer and do a guassian blur using the same value you used with the high-pass. Once done, the image will again look like the original.
To verify this, make a copy of the original background layer, bring this "check layer" to the top of the stack, zoom in to a 1:1 view, and turn the visibility of the check layer on and off to see that there are practically no differences between the 2.
From here, delete (or turn off) the check layer, and do your frequency separation retouching as you would in the other software.
One thing I do to eliminate any potential differences between the separated image and the original is to group the retouching layers with a mask and allow only those areas which have been retouched to be seen.
You start the same way, and create 2 duplicates of the image you want to edit. Rename the top one as "texture" or "high" and the other as "color" or "low". At this point, you will have 3 layers -- the original background plus 2 edit layers.
Now, select the texture layer and do a high-pass edge effect. Play with the settings so you retain the texture you want to keep and no more. In my case, (with 36 megapixel images of headshots) I tend to use settings around 5 to 9. Change the blend mode of this layer to hard light. At this point, the image will look "too sharp".
Next, select the color layer and do a guassian blur using the same value you used with the high-pass. Once done, the image will again look like the original.
To verify this, make a copy of the original background layer, bring this "check layer" to the top of the stack, zoom in to a 1:1 view, and turn the visibility of the check layer on and off to see that there are practically no differences between the 2.
From here, delete (or turn off) the check layer, and do your frequency separation retouching as you would in the other software.
One thing I do to eliminate any potential differences between the separated image and the original is to group the retouching layers with a mask and allow only those areas which have been retouched to be seen.
Re: Frequency Separation Retouching
Hi guys, ancient topic but I just have to share this! Plus, I just realized I posted on a different sub-forum, so I'm just putting a link to that post here: https://forum.corel.com/viewtopic.php?p=386127#p386127
It's an insane Frequency Separation shortcut I just found out about!
It's an insane Frequency Separation shortcut I just found out about!
Good Unofficial PaintShop Pro Tutorials: Creation Cassel • Make Shop Pro • HEC Image Editing • LeviFiction PSP Basics
(plus my own Gimp & Stuff)
(plus my own Gimp & Stuff)
