FixChromaBleeding
From Avisynth wiki
(Difference between revisions)
(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 |
Contents |
[edit] 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.
[edit] Requirements
[edit] Required Plugins
[edit] 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) }
[edit] Examples
AviSource("blah.avi") FixChromaBleeding()
[edit] External Links
- Doom9 Forum - discussion.
- FixChromaBleeding.avs - archived script from old wiki.
Back to External Filters ←