FixChromaBleeding

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
(reformat)
(correct some things)
 
Line 3: Line 3:
 
|ajordan
 
|ajordan
 
|1.0
 
|1.0
|[http://web.archive.org/web/20130118202943/http://avisynth.org/mediawiki/upload/f/f2/FixChromaBleeding.avs FixChromaBleeding.avs]
+
|
 
|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]] &larr;'''
 
'''Back to [[External_filters#Chroma_correction|External Filters]] &larr;'''

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

  • AviSynth 2.5.8 or greater
  • Supported color formats: YV12

[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




Back to External Filters

Personal tools