title: Filtros de Procesamiento - Referencia de Efectos description: Referencia de 35+ efectos de video DirectShow en tiempo real: filtros de color, desentrelazado, eliminación de ruido y efectos artísticos.
Referencia Completa de Efectos de Video¶
Descripción General¶
El Paquete de Filtros de Procesamiento DirectShow proporciona más de 35 efectos de video en tiempo real que se pueden aplicar individualmente o encadenar juntos. Esta referencia documenta todos los efectos disponibles, sus parámetros y uso.
Categorías de Efectos¶
- Texto y Gráficos - Logotipos de texto, superposiciones gráficas
- Filtros de Color - Filtros rojo, verde, azul, escala de grises
- Ajuste de Imagen - Brillo, contraste, saturación
- Efectos Espaciales - Voltear, espejo, rotar
- Efectos Artísticos - Mármol, solarizar, posterizar, mosaico
- Ruido y Calidad - Algoritmos de eliminación de ruido (CAST, adaptativo, mosquito)
- Desentrelazado - Métodos de mezcla, triángulo, CAVT
- Efectos Creativos - Desenfoque, sacudida, spray, invertir
Efectos de Texto y Gráficos¶
ef_text_logo¶
Renderiza superposición de texto en video con amplias opciones de personalización.
Tipo de Efecto: CVFEffectType.ef_text_logo
Parámetros (estructura CVFTextLogoMain):
| Parámetro | Tipo | Descripción | Predeterminado |
|-----------|------|-------------|----------------|
| x | int | Posición X (píxeles) | 0 |
| y | int | Posición Y (píxeles) | 0 |
| text | BSTR | Texto a mostrar | "" |
| font_name | BSTR | Nombre de familia de fuente | "Arial" |
| font_size | int | Tamaño de fuente (puntos) | 12 |
| font_color | COLORREF | Color del texto (RGB) | 0xFFFFFF (blanco) |
| font_italic | BOOL | Estilo cursiva | FALSE |
| font_bold | BOOL | Estilo negrita | FALSE |
| font_underline | BOOL | Estilo subrayado | FALSE |
| font_strikeout | BOOL | Estilo tachado | FALSE |
| transparent_bg | BOOL | Fondo transparente | TRUE |
| bg_color | COLORREF | Color de fondo | 0x000000 (negro) |
| transp | DWORD | Nivel de transparencia (0-255) | 255 (opaco) |
| align | CVFTextAlign | Alineación de texto | al_left |
| antialiasing | CVFTextAntialiasingMode | Modo de suavizado | am_AntiAlias |
| gradient | BOOL | Habilitar degradado | FALSE |
| gradientMode | CVFTextGradientMode | Dirección del degradado | gm_horizontal |
| gradientColor1 | COLORREF | Color inicial del degradado | 0xFFFFFF |
| gradientColor2 | COLORREF | Color final del degradado | 0x000000 |
| borderMode | CVFTextBorderMode | Estilo de borde/contorno | bm_none |
| innerBorderColor | COLORREF | Color de borde interior | 0x000000 |
| outerBorderColor | COLORREF | Color de borde exterior | 0xFFFFFF |
| innerBorderSize | int | Ancho de borde interior | 1 |
| outerBorderSize | int | Ancho de borde exterior | 1 |
| DateMode | BOOL | Mostrar fecha/hora actual | FALSE |
| DateMask | BSTR | Cadena de formato de fecha | "" |
Opciones de Alineación de Texto:
- al_left - Alineado a la izquierda
- al_center - Alineado al centro
- al_right - Alineado a la derecha
Modos de Borde:
- bm_none - Sin borde
- bm_inner - Contorno interior
- bm_outer - Contorno exterior
- bm_inner_and_outer - Ambos lados
- bm_embossed - Efecto relieve 3D
- bm_outline - Contorno estándar
- bm_filled_outline - Contorno sólido
- bm_halo - Efecto resplandor
Ejemplo (C++):
CVFEffect effect;
effect.Type = ef_text_logo;
effect.Enabled = TRUE;
effect.TextLogo.x = 10;
effect.TextLogo.y = 10;
effect.TextLogo.text = SysAllocString(L"Transmisión en Vivo");
effect.TextLogo.font_name = SysAllocString(L"Arial");
effect.TextLogo.font_size = 32;
effect.TextLogo.font_color = RGB(255, 255, 255);
effect.TextLogo.font_bold = TRUE;
effect.TextLogo.borderMode = bm_outline;
effect.TextLogo.outerBorderColor = RGB(0, 0, 0);
effect.TextLogo.outerBorderSize = 2;
pEffects->add_effect(effect);
ef_graphic_logo¶
Superpone una imagen (logotipo, marca de agua) en el video.
Tipo de Efecto: CVFEffectType.ef_graphic_logo
Parámetros (estructura CVFGraphicLogoMain):
| Parámetro | Tipo | Descripción |
|---|---|---|
x |
UINT32 | Posición X (píxeles) |
y |
UINT32 | Posición Y (píxeles) |
Filename |
BSTR | Ruta al archivo de imagen (BMP, PNG, JPG) |
hBmp |
int | Identificador de mapa de bits (alternativa al nombre de archivo) |
StretchMode |
CVFStretchMode | Cómo escalar la imagen |
TranspLevel |
int | Nivel de transparencia (0-255) |
UseColorKey |
BOOL | Habilitar transparencia por clave de color |
ColorKey |
COLORREF | Color para hacer transparente |
Modos de Estiramiento:
- sm_none - Tamaño original
- sm_stretch - Estirar para ajustar
- sm_letterbox - Ajustar con relación de aspecto
- sm_crop - Recortar para ajustar
Ejemplo (C#):
var effect = new CVFEffect
{
Type = (int)CVFEffectType.ef_graphic_logo,
Enabled = true,
GraphicLogo = new CVFGraphicLogoMain
{
Filename = @"C:\Images\logo.png",
x = 20,
y = 20,
StretchMode = (int)CVFStretchMode.sm_none,
TranspLevel = 200,
UseColorKey = false
}
};
effectsInterface.add_effect(effect);
Efectos de Filtro de Color¶
ef_blue¶
Aplica filtro de color azul (realza el azul, reduce otros colores).
Tipo de Efecto: CVFEffectType.ef_blue
Parámetros:
- pAmountI - Intensidad del filtro (0-100, predeterminado: 50)
Casos de Uso:
- Tinte azul artístico
- Atmósfera fría
- Escenas de agua/océano
ef_green¶
Aplica filtro de color verde.
Tipo de Efecto: CVFEffectType.ef_green
Parámetros:
- pAmountI - Intensidad del filtro (0-100)
Casos de Uso: - Efecto de visión nocturna - Escenas de bosque/naturaleza - Efecto estilo Matrix
ef_red¶
Aplica filtro de color rojo.
Tipo de Efecto: CVFEffectType.ef_red
Parámetros:
- pAmountI - Intensidad del filtro (0-100)
Casos de Uso:
- Atmósfera cálida
- Efecto de atardecer
- Escenas de alerta/peligro
ef_filter_blue / ef_filter_blue_2¶
Filtrado azul avanzado con diferentes algoritmos.
Tipo de Efecto: CVFEffectType.ef_filter_blue o ef_filter_blue_2
Diferencia: ef_filter_blue_2 utiliza matemáticas de color alternativas para diferentes resultados visuales.
ef_filter_green / ef_filter_green2¶
Filtrado verde avanzado (dos variantes).
Tipos de Efecto: CVFEffectType.ef_filter_green, ef_filter_green2
ef_filter_red / ef_filter_red2¶
Filtrado rojo avanzado (dos variantes).
Tipos de Efecto: CVFEffectType.ef_filter_red, ef_filter_red2
ef_greyscale¶
Convierte video a blanco y negro.
Tipo de Efecto: CVFEffectType.ef_greyscale
Parámetros: Ninguno (conversión completa a escala de grises)
Casos de Uso:
- Aspecto de película clásica
- Efecto artístico
- Reducir ruido de color
Ejemplo (C++):
ef_invert¶
Invierte todos los colores (imagen negativa).
Tipo de Efecto: CVFEffectType.ef_invert
Parámetros: Ninguno
Casos de Uso: - Efecto artístico - Apariencia de rayos X - Efectos visuales especiales
Efectos de Ajuste de Imagen¶
ef_contrast¶
Ajusta el contraste de la imagen.
Tipo de Efecto: CVFEffectType.ef_contrast
Parámetros:
- pAmountI - Ajuste de contraste (-100 a +100)
- Negativo: Disminuir contraste
- Positivo: Aumentar contraste
- Predeterminado: 0 (sin cambios)
Ejemplo (C#):
var effect = new CVFEffect
{
Type = (int)CVFEffectType.ef_contrast,
Enabled = true,
pAmountI = 25 // Aumentar contraste en 25%
};
ef_lightness¶
Ajusta el brillo general.
Tipo de Efecto: CVFEffectType.ef_lightness
Parámetros:
- pAmountI - Ajuste de brillo (-100 a +100)
- Negativo: Oscurecer
- Positivo: Aclarar
- Predeterminado: 0
ef_darkness¶
Oscurece la imagen (opuesto a brillo).
Tipo de Efecto: CVFEffectType.ef_darkness
Parámetros:
- pAmountI - Cantidad de oscuridad (0-100)
ef_saturation¶
Ajusta la saturación de color.
Tipo de Efecto: CVFEffectType.ef_saturation
Parámetros:
- pAmountI - Ajuste de saturación (-100 a +100)
- -100: Escala de grises
- 0: Colores originales
- +100: Hiper-saturado
Casos de Uso: - Colores vivos para contenido promocional - Desaturar para aspecto apagado - Gradación de color
Efectos Espaciales¶
ef_flip_down¶
Voltea el video verticalmente (cabeza abajo).
Tipo de Efecto: CVFEffectType.ef_flip_down
Parámetros: Ninguno
Casos de Uso:
- Corregir cámara invertida
- Efecto espejo con rotación
- Efectos especiales
ef_flip_right¶
Voltea el video horizontalmente (espejo).
Tipo de Efecto: CVFEffectType.ef_flip_right
Parámetros: Ninguno
Casos de Uso: - Modo espejo de cámara web - Corregir cámara reflejada - Efectos de simetría
ef_mirror_down¶
Crea efecto espejo vertical (arriba se refleja abajo).
Tipo de Efecto: CVFEffectType.ef_mirror_down
ef_mirror_right¶
Crea efecto espejo horizontal (izquierda se refleja a derecha).
Tipo de Efecto: CVFEffectType.ef_mirror_right
Efectos Artísticos¶
ef_blur¶
Aplica desenfoque gaussiano a la imagen.
Tipo de Efecto: CVFEffectType.ef_blur
Parámetros:
- pAmountI - Cantidad de desenfoque (0-100)
- pSizeI - Tamaño del núcleo de desenfoque (1-20)
Casos de Uso:
- Desenfoque de fondo (simulación de profundidad de campo)
- Suavizar imagen
- Privacidad (desenfocar rostros, matrículas)
Ejemplo (C++):
CVFEffect effect;
effect.Type = ef_blur;
effect.Enabled = TRUE;
effect.pAmountI = 50; // 50% fuerza de desenfoque
effect.pSizeI = 10; // radio de desenfoque de 10 píxeles
pEffects->add_effect(effect);
ef_marble¶
Crea efecto de textura de mármol/remolino.
Tipo de Efecto: CVFEffectType.ef_marble
Parámetros:
- pAmountD - Intensidad del efecto (0.0-1.0)
- pTurbulenceI - Cantidad de turbulencia (0-100)
- pScaleD - Factor de escala (0.1-10.0)
Casos de Uso: - Fondo artístico - Efectos de transición - Visuales psicodélicos
ef_posterize¶
Reduce el número de colores (efecto arte póster).
Tipo de Efecto: CVFEffectType.ef_posterize
Parámetros:
- pAmountI - Niveles de color (2-256)
- Valores más bajos: Menos colores, más dramático
- Valores más altos: Más colores, efecto sutil
Casos de Uso:
- Estilo arte pop
- Efecto cómic
- Reducir profundidad de color
ef_mosaic¶
Crea efecto pixelado/mosaico.
Tipo de Efecto: CVFEffectType.ef_mosaic
Parámetros:
- pSizeI - Tamaño de bloque de mosaico (2-100 píxeles)
Casos de Uso: - Privacidad (desenfocar rostros/identidades) - Estilo pixel art retro - Censura
Ejemplo (C#):
var effect = new CVFEffect
{
Type = (int)CVFEffectType.ef_mosaic,
Enabled = true,
pSizeI = 15 // bloques de 15x15 píxeles
};
ef_solarize¶
Crea efecto de solarización (inversión parcial de color).
Tipo de Efecto: CVFEffectType.ef_solorize (nota ortografía)
Parámetros:
- pAmountI - Umbral de solarización (0-255)
Casos de Uso:
- Efecto de fotografía artística
- Aspecto retro
- Transiciones creativas
ef_spray¶
Crea efecto de spray/salpicadura de pintura.
Tipo de Efecto: CVFEffectType.ef_spray
Parámetros:
- pAmountI - Intensidad del spray (0-100)
ef_shake_down¶
Simula efecto de sacudida de cámara verticalmente.
Tipo de Efecto: CVFEffectType.ef_shake_down
Parámetros:
- pAmountI - Intensidad de sacudida (0-100)
Casos de Uso:
- Efecto terremoto
- Vibración de impacto
- Simulación de cámara en mano
Efectos de Procesamiento de Ruido¶
ef_denoise_cast¶
Algoritmo de eliminación de ruido CAST (Combined Adaptive Spatial-Temporal).
Tipo de Efecto: CVFEffectType.ef_denoise_cast
Parámetros (estructura CVFDenoiseCAST):
| Parámetro | Rango | Predeterminado | Descripción |
|---|---|---|---|
TemporalDifferenceThreshold |
0-255 | 16 | Umbral de detección de movimiento |
NumberOfMotionPixelsThreshold |
0-16 | 0 | Píxeles mínimos para movimiento |
StrongEdgeThreshold |
0-255 | 8 | Preservación de bordes |
BlockWidth |
1-16 | 4 | Ancho de bloque de procesamiento |
BlockHeight |
1-16 | 4 | Alto de bloque de procesamiento |
EdgePixelWeight |
0-255 | 128 | Peso de mezcla de bordes |
NonEdgePixelWeight |
0-255 | 16 | Peso de área suave |
GaussianThresholdY |
int | 12 | Umbral de ruido Luma |
GaussianThresholdUV |
int | 6 | Umbral de ruido Croma |
HistoryWeight |
0-255 | 192 | Fuerza de filtrado temporal |
Casos de Uso: - Limpieza de video con poca luz - Reducción de ruido de cámara web - Eliminación de artefactos de compresión
Ejemplo (C++):
CVFEffect effect;
effect.Type = ef_denoise_cast;
effect.Enabled = TRUE;
// Reducción de ruido moderada
effect.DenoiseCAST.TemporalDifferenceThreshold = 20;
effect.DenoiseCAST.StrongEdgeThreshold = 10;
effect.DenoiseCAST.GaussianThresholdY = 15;
effect.DenoiseCAST.GaussianThresholdUV = 8;
pEffects->add_effect(effect);
ef_denoise_adaptive¶
Reducción de ruido adaptativa que se ajusta al contenido de la imagen.
Tipo de Efecto: CVFEffectType.ef_denoise_adaptive
Parámetros:
- pDenoiseAdaptiveThreshold - Umbral de ruido (0-100)
- pDenoiseAdaptiveBlurMode - Método de desenfoque (0-2)
Casos de Uso:
- Reducción de ruido general
- Limpieza de video
- Mejora de calidad
ef_denoise_mosquito¶
Reduce el ruido mosquito (artefactos de compresión alrededor de los bordes).
Tipo de Efecto: CVFEffectType.ef_denoise_mosquito
Parámetros:
- pAmountI - Fuerza de reducción (0-100)
Casos de Uso: - Limpiar video muy comprimido - Eliminar artefactos MPEG/H.264 - Post-procesamiento para transmisión
ef_color_noise¶
Añade ruido de color (grano) a la imagen.
Tipo de Efecto: CVFEffectType.ef_color_noise
Parámetros:
- pAmountI - Cantidad de ruido (0-100)
Casos de Uso:
- Efecto de grano de película
- Aspecto retro/vintage
- Textura artística
ef_mono_noise¶
Añade ruido monocromático (blanco y negro).
Tipo de Efecto: CVFEffectType.ef_mono_noise
Parámetros:
- pAmountI - Cantidad de ruido (0-100)
Efectos de Desentrelazado¶
ef_deint_blend¶
Mezcla campos entrelazados juntos.
Tipo de Efecto: CVFEffectType.ef_deint_blend
Parámetros (estructura CVFDeintBlend):
| Parámetro | Rango | Predeterminado | Descripción |
|-----------|-------|----------------|-------------|
| blendThresh1 | 0-255 | 5 | Primer umbral de mezcla |
| blendThresh2 | 0-255 | 9 | Segundo umbral de mezcla |
| blendConstants1 | 0.0-1.0 | 0.3 | Primer peso de mezcla |
| blendConstants2 | 0.0-1.0 | 0.7 | Segundo peso de mezcla |
Casos de Uso:
- Desentrelazar video analógico
- Eliminar artefactos de peine
- Convertir entrelazado a progresivo
ef_deint_triangle¶
Desentrelazado por interpolación triangular.
Tipo de Efecto: CVFEffectType.ef_deint_triangle
Parámetros:
- pDeintTriangleWeight - Peso de interpolación (0-100)
Calidad: Mejor preservación de bordes que la mezcla
ef_deint_cavt¶
Desentrelazado CAVT (Content Adaptive Vertical Temporal).
Tipo de Efecto: CVFEffectType.ef_deint_cavt
Parámetros:
- pDeintCAVTThreshold - Umbral de movimiento (0-100)
Calidad: Mejor calidad, más intensivo en CPU
Casos de Uso:
- Desentrelazado de alta calidad
- Conversión de video de difusión
- Procesamiento de archivo
Encadenamiento de Efectos¶
Se pueden aplicar múltiples efectos simultáneamente. Los efectos se procesan en el orden en que se agregaron.
Ejemplo: Mejora de Transmisión Profesional:
// 1. Denoise
CVFEffect denoise;
denoise.Type = ef_denoise_adaptive;
denoise.Enabled = TRUE;
denoise.pDenoiseAdaptiveThreshold = 15;
pEffects->add_effect(denoise);
// 2. Color correction
CVFEffect saturation;
saturation.Type = ef_saturation;
saturation.Enabled = TRUE;
saturation.pAmountI = 15; // Ligero aumento de saturación
pEffects->add_effect(saturation);
// 3. Add branding
CVFEffect logo;
logo.Type = ef_graphic_logo;
logo.Enabled = TRUE;
logo.GraphicLogo.Filename = SysAllocString(L"logo.png");
logo.GraphicLogo.x = 20;
logo.GraphicLogo.y = 20;
pEffects->add_effect(logo);
// 4. Add timestamp
CVFEffect timestamp;
timestamp.Type = ef_text_logo;
timestamp.Enabled = TRUE;
timestamp.TextLogo.DateMode = TRUE;
timestamp.TextLogo.DateMask = SysAllocString(L"%Y-%m-%d %H:%M:%S");
timestamp.TextLogo.x = 20;
timestamp.TextLogo.y = 1050; // Abajo izquierda
pEffects->add_effect(timestamp);
Consideraciones de Rendimiento¶
Uso de CPU por Efecto¶
Bajo Impacto (< 5% CPU): - Filtros de color - Escala de grises - Invertir - Voltear/Espejo Impacto Medio (5-15% CPU): - Superposiciones de texto/gráficos - Contraste/brillo - Posterizar - Desentrelazado simple Alto Impacto (15-40% CPU): - Desenfoque (radio grande) - Denoise (CAST, adaptativo) - Mosaico (bloques pequeños) - Mármol/efectos artísticos
Consejos de Optimización¶
- Limitar efectos simultáneos - Cada efecto añade tiempo de procesamiento
- Usar parámetros apropiados - Radio de desenfoque más grande = más CPU
- Deshabilitar efectos no utilizados - Establecer
Enabled = FALSEen lugar de eliminar - Procesar a menor resolución - Reducir escala, aplicar efectos, aumentar escala
- Usar renderizado por GPU cuando sea posible - Verificar efectos acelerados por GPU
Combinaciones de Efectos Comunes¶
Mejora de Cámara Web¶
1. ef_denoise_adaptive (umbral: 15)
2. ef_contrast (cantidad: +10)
3. ef_saturation (cantidad: +15)
4. ef_flip_right (modo espejo)