FixChromaBleeding: Difference between revisions
From Avisynth wiki
Jump to navigationJump to search
reformat |
correct some things |
||
| Line 3: | Line 3: | ||
|ajordan | |ajordan | ||
|1.0 | |1.0 | ||
| | | | ||
|Chroma_correction | |Chroma_correction | ||
| | | | ||
| Line 24: | Line 24: | ||
# prepare to work on the V channel and reduce to speed up and filter noise | # prepare to work on the V channel and reduce to speed up and filter noise | ||
area = input.tweak(sat=4.0).VtoY.ReduceBy2 | area = input.tweak(sat=4.0).VtoY().ReduceBy2() | ||
# select and normalize both extremes of the scale | # select and normalize both extremes of the scale | ||
| Line 34: | Line 34: | ||
# expand to cover beyond the bleeding areas and shift to compensate the resizing | # expand to cover beyond the bleeding areas and shift to compensate the resizing | ||
mask = mask.ConvertToRGB32.GeneralConvolution(0,"0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0").ConvertToYV12 | mask = mask.ConvertToRGB32().GeneralConvolution(0,"0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0").ConvertToYV12() | ||
# back to full size and binarize (also a trick to expand) | # back to full size and binarize (also a trick to expand) | ||
| Line 56: | Line 56: | ||
==External Links == | ==External Links == | ||
*[http://forum.doom9.org/showthread.php?t=77074| Doom9 Forum] - discussion. | *[http://forum.doom9.org/showthread.php?t=77074| Doom9 Forum] - discussion. | ||
*[http://web.archive.org/web/20130118202943/http://avisynth.org/mediawiki/upload/f/f2/FixChromaBleeding.avs FixChromaBleeding.avs] - archived script from old wiki. | |||
<br> | <br> | ||
<br> | <br> | ||
----------------------------------------------- | ----------------------------------------------- | ||
'''Back to [[External_filters#Chroma_correction|External Filters]] ←''' | '''Back to [[External_filters#Chroma_correction|External Filters]] ←''' | ||
Latest revision as of 23:50, 8 August 2015
| Abstract | |
|---|---|
| Author | ajordan |
| Version | 1.0 |
| Download | |
| Category | Chroma_correction |
| License | |
| Discussion | Doom9 thread |
Description
This is a script to fix color bleeding. The colors that bleed most are the ones that lie in the extremes of the chroma scale (the V channel): saturated blue and red. This Avisynth script, which isolates those extremes, makes a mask out of them and uses the mask to shift the chroma (and lower the saturation) only in those areas where the bleeding is more severe.
Requirements
Required Plugins
Script
Function FixChromaBleeding (clip input) {
# prepare to work on the V channel and reduce to speed up and filter noise
area = input.tweak(sat=4.0).VtoY().ReduceBy2()
# select and normalize both extremes of the scale
red = area.Levels(255,1.0,255,255,0)
blue = area.Levels(0,1.0,0,0,255)
# merge both masks
mask = MergeLuma(red, blue, 0.5).Levels(250,1.0,250,255,0)
# expand to cover beyond the bleeding areas and shift to compensate the resizing
mask = mask.ConvertToRGB32().GeneralConvolution(0,"0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0").ConvertToYV12()
# back to full size and binarize (also a trick to expand)
mask = mask.BilinearResize(Width(input),Height(input)).Levels(10,1.0,10,0,255)
# prepare a version of the image that has its chroma shifted and less saturated
input_c = input.ChromaShift(C=-4).tweak(sat=0.8)
# combine both images using the mask
return input.overlay(input_c,mask=mask,mode="blend",opacity=1)
}
Examples
AviSource("blah.avi") FixChromaBleeding()
External Links
- Doom9 Forum - discussion.
- FixChromaBleeding.avs - archived script from old wiki.
Back to External Filters ←