Foto-blog de Antonio Castro

Retoque fotográfico con Gimp, fotos copyleyft, licencia Creative Commons (CC-BY), fotos gratis para uso comercial con reconocimiento.

Macrofotografía abeja

Categoría: ImageMagick Página 1 de 2

Como hacer scrolling para créditos finales. (Tutorial avanzado)

Imagen para el scroll.

Imagen para el scroll.

La mayoría de mis tutoriales son para usuarios noveles, pero de vez en cuando me gusta incluir alguna cosilla con algo más de chicha. Este es el caso.

Trataré de explicar como se hizo el final de uno de mis vídeos.

Ignoro como harán los demás las cosas, porque en el tema de edición y producción de vídeo hay auténticas maravillas de software, pero yo me limito a usar Software Libre.

Muchas veces me apaño usando scripts propios. Eso me da mucha flexibilidad y me permite ir construyendo poco a poco una librería de recursos de software que iré compartiendo con vosotros.

Esta vez no nos vamos a conformar con añadir un scrolling. Vamos a construir un final en tres partes: Un fundido previo, un efecto 3D y un scrolling con los créditos.

1) Preparación previa al scrolling:

Mi técnica de scrolling consiste en meter todo lo que necesito para el scrolling en una imagen alargada verticalmente.

La imagen debe tener el mismo ancho que el ancho de la imagen de la película. En nuestro caso usamos HD 720p. Es decir  1280×720. Así que el ancho será 1280 pixels.

Yo he usado Gimp para eso.

Quedará como la imagen de la izquierda.

2) Fundido previo:

Tomaremos una imagen de 1280×720 recortando la parte superior. Yo usé gThumb para eso.

Guardamos esta imagen con el nombre de ‘Fin04.jpg’. Sacamos una copia que llamaremos  ‘FinAux.jpg’ y la editamos suprimendo todo excepto el título.

También tomamos la última imagen de la película y la copiamos con el nombre de ‘Fin01.jpg’. La abrimos con Gimp y cargamos ‘FinAux.jpg’. Superponemos ambas inmágenes. (Yo lo hice pasando el negro a a blanco, conviertiéndo el blanco en transparente con la opción clolores -> color a alfa y luego desde editar copie y pegué sobre ‘Fin01.jpg’ y salve con el nombre de ‘Fin02.jpg’.

La imágenes a las que acabo de referirme son estas:

Fin01

Fin01.jpg

Fin02

Fin02.jpg

Fin04

Fin04.jpg

FinAux

FinAux.jpg

(No existe ninguna imagen ‘Fin03.jpg’ porque decidí  no incluirla en el fundido y la renombré como ‘FinAux.jpg’)

Ahora para hacer una transición fundiendo secuencialmente estas imágenes ejecuto un script muy sencillito que hace uso de la opción ‘-morph‘ de la utilidad ‘convert’ de ‘ImageMagick’ de la que hemos hablado en otras ocasiones.

Nos genera un directorio con los fotogramas. Estos pueden compilarse usando la utilidad ‘ffmpeg’. (Yo uso un script propio ‘dirs2vid.py’ del que ya hablaré en otra ocasión y que es muy similar a otro que ya mencioné como ‘dir2avi.py‘ descrito aquí.)

#!/bin/bash
rm -fr morph 2> /dev/null
rm morph.avi 2> /dev/null
mkdir morph
convert -morph 25 Fin0?.jpg morph/FIN%04d.JPG
dirs2vid.py -exif -out=FIN.avi morph

Con esto ya tenemos el fundido.

3) Preparar un bonito efecto de explosión invertida en 3D para nuestro logo:

Esto obviamente es una filigrana opcional, pero dar al logo una presentación variada es una idea que permite aumentar la atención sobre él y con esta costumbre iremos reforzando la imagen de la marca de nuestro sitio. Uno de los sitios que practica esta idea es Google a pesar de que ya tiene una imagen de marca potente.

Para ello recurrimos al trazador de rayos PovRay del cual ya hemos tratado ampliamente en otros artículos. Para no extendernos me limito a copiar el fuente.

[…]

Vemos cerca del final dentro de la cláusula object un #include «Explode.inc» Que llama al fichero que realiza la explosión de objetos.

Este include se proporciona como una utilidad para PovRay. Su autor es Chris Colefax. ‘OBJECT EXPLODER INCLUDE FILE for Persistence of Vision 3.x’

Usando nuestro lanzador PovRay usaríamos el comando:

pov.py Logo3_ j 11 11 1 500 0 4

Esto generará 500 fotogramas (‘Logo3_001.jpg’ … ‘Logo3_500.jpg’) haciendo variar el valor de clock entre 0 y 4.

Dado que en el fuente Povray hemos omitido el fondo, este aparecerá en negro.

Podemos obtener fotogramas en png con el fondo transparente reconvirtiendo esos fichros con mogrify de ImageMagick.

mogrify -format png -transparent black Logo3_???.jpg

De esa forma ya queda preparado para poder superponer esos fotogramas con fondo transparente sobre los fotogramas de nuestro scrolling. Para ello hacemos un script que genere el scrolling del texto y que superonga los fotogramas 3D que hemos generado en los fotogramas finales de nuestro scrolling.

#!/usr/bin/python
# -*- coding: latin1 -*-
import os, sys
################
def comando(comm):
print comm
os.system(comm)
######## MAIN ##########
comando ("mkdir fot1 fot2")
Top=1501
Ini3D=650
for n in range(1,Top):
comando("convert scroll.jpg -crop 1280x720+0+%d fot1/%04d.jpg" % (n, n))
m=0
# Añadir logo 3D
for n in range(1, Top):
if (n

Para finalizar juntamos el primer fundido con el vídeo de scroll que acabamos de generar ahora y ya está completo.
Puedes ver a continuación uno de los fotogramas generados.

Un fotograma del final del scrolling.

Un fotograma del final del scrolling.

El resultado completo puede verse en los créditos, al final del vídeo, de  LasVentas TML Noct 2011.

Simple postprocesado para digitalización de documentos.

Postprocesado para digitalización de documentos.

Postprocesado para digitalización de documentos.

¿Tienes documentos que deseas digitalizar y no sabes cuál es la mejor forma de hacerlo? Aquí te proponemos un sistema sencillo sin grandes pretensiones pero muy práctico.

Anímate, a mí me gusta hacer los tutoriales para la gente que menos conocimientos tiene, y este tutorial no es una excepción.

Propósito del tutorial:

Generalmente, en la digitalización de documentos, tanto las máquinas fotográficas como los escáneres, pueden obtener imágenes que ocupan mucho espacio, y que pueden venir con  deficiencias.

Si quisiéramos pasar a blanco y negro todo el documento tendríamos que hacerlo manualmente para marcar un umbral que divida la frontera entre lo que se considera totalmente blanco y lo que se considera totalmente negro. Este tipo de imágenes planas se comprimen muy bien con los formatos GIF o PNG, pero nosotros no vamos a abordar un tratamiento tan radical.

Nosotros vamos a suponer que tenemos un montón de documentos escaneados o fotografiados, que deseamos simplemente mejorar con un criterio generalista de prudencia, para que nos sirva para una amplia variedad de casos.

Por ello asumiremos que un documento podrá incluir partes en color, o quizás tonalidades de grises. No vamos a prejuzgar lo contrario, pero sí vamos a asumir en cambio, que lo que más abundará será el texto en negro sobre fondo blanco por ser lo más habitual.

Lo que buscará el postprocesado será:

  • Aumentar la legibilidad del documento mejorando el contraste.
  • La afinación del enfoque (no esperes milagros).
  • Una optimización del espacio, reduciendo el tamaño del documento y comprimiendo de forma razonable la imagen.

Todo ello sin sacrificar la legibilidad.

La solución ofrecida:

Está pensada para automatizar el postprocesado de una cantidad importante de documentos previamente digitalizados. El postprocesado no hace milagros, pero seguramente te sorprenderá la calidad del resultado si partes de un material no demasiado bueno.

Usaremos para ello el comando convert y el comando mogrify del paquete de utilidades ImageMagick. Se trata de software libre disponible tanto para Windows como para Linux. En ambos casos se trata de utilidades especialmente pensadas para su uso desde el intérprete de comandos.

convert:
El comando ‘convert’ es la base del paquete de utilidades ImageMagick. Permite realizar transformaciones entre distintos formatos de imágenes, así como una amplísima variedad de operaciones.

La sintaxis básica del comando permite dos formas de uso equivalentes:

convert input [-opciones [argumentos]] output
convert [-opcion [argumentos]] input output

Donde:

input: archivo sobre el que  se realizará la acción.
output: nombre que deseamos asignar al archivo transformado.
-opciones : determinarán, las acciones a realizar sobre la imagen.
argumentos : determinadas opciones requieren determinados argumentos.

Ya hemos visto en alguna ocasión ejemplos de uso del comando convert. Es imposible de resumir todo lo que este comando puede hacer. Podemos obtener un listado de las posibilidades del comando tecleando:

convert -list

mogrify:
Este comando admite los mismos usos que convert, pero se usa para producir transformaciones masivas de ficheros. ATENCION: Este es un comando que requiere mucha precaución al usarlo porque sobreescribe todos los ficheros originales. Lo sensato es hacer una copia previa y hacer los cambios masivos sobre la copia para prevenir un desastre.

Un ejemplo de postprocesado concreto:

Primero podemos hacer un ensayo sobre una imagen concreta mediante el comando convert.

convert IMG_0032.jpg -rotate -90 -geometry 1200 -normalize -unsharp 0 -quality 83 PRUEBA.jpg

-rotate -90: Gira la imagen 90 grado a la izquierda, para girar 90 grados a la derecha se usará -rotate +90. (Suponemos que el astuto lector tuvo la precaución de colocar todas las páginas escaneadas en la misma posición, y que todas la imágenes necesitarán ser giradas de la misma forma).  Por si acaso no fueras demasiado astuto, aclaramos que esta opción no necesita usarse si la imagen ya viene en su posición correcta, pero si te siente más seguro usando -rotate 0 a mí da igual.   😉

-geometry 1200: Obtiene una imagen con una anchura de 1200 pixels (la altura se ajustará automáticamente).

-normalize: Normaliza el contraste haciendo que las partes más claras de la imagen se vuelvan totalmente blancas, que las partes más oscuras se vuelvan totalmente negras, y que los tonos intermedios se ajusten linealmente entre ambos valores. Suele producir un resultado muy aceptable.

-unsharp 0: Afina el resultado mejorando imágenes ligeramente desenfocadas. Esta función es bastante costosa en términos de tiempo de CPU.

-quality 83: La compresión del fichero resultante se hará con calidad 83. (Convendrá controlar el resultado para ver si los artefactos de compresión de jpeg, perjudican la lectura del documento mirando como quedan los textos con letra de menor tamaño. Usa un buen aumento para mirar el resultado y estar seguro de que no estar apurando demasiado la compresión de la imagen).

Procedimiento:

Deberías partir del comando sugerido, y en caso de no ser totalmente satisfactorio busca adaptarlo a sus necesidades. Quizás te interese variar el tamaño de la imagen en función del espacio en disco duro que te puedas permitir.

Repite las pruebas variando los parámetros usados hasta quedar satisfecho y luego haz una copia de todas la imágenes que deben ser procesadas y sitúalas en un directorio aparte. (Nosotros lo denominaremos COPIA_IMG)

Finalmente, para aplicar cambios masivos sobre las imágenes dentro de ese directorio usaríamos mogrify y haríamos lo siguiente:

mogrify -verbose -rotate -90 -geometry 1200 -normalize -unsharp 0 -quality 83 COPIA_IMG/*.jpg

He añadido la opción verbose para que puedas ver el progreso de todo el proceso.

Consejos finales:
En caso de foto:
Las fotos han de hacerse con buena luz, enfocando con precisión la totalidad del documento y encuadrando lo mejor posible. Si no se pone el documento sobre un fondo blanco luego conviene recortar la foto para suprimir los laterales oscuros.
En caso de usar un escáner o una fotografía:

Especialmente si necesitas digitalizar muchos documentos, un escáner te resultará mucho más práctico que hacer fotos. Si aún no tienes escáner y vas a compra alguno, asegúrate de que puede grabar las imágenes en una tajeta externa. Esto es interesante a efectos de prevenir fallos de compatibilidad.  También es importante saber cuanto tarda en escanear un folio. Actualmente todos los escáneres tienen una resolución suficiente para escanear documentos de texto.
Ten la precaución de situar todas la páginas en la misma orientación. Meter o sacar una tarjeta de memoria conviene hacerlo siempre con la cámara o con el escáner apagado, para no perder información.

Procesando las imágenes en un PC:
No trabajes directamente sobre la tarjeta. Saca una copia de todo el material al PC, y luego desmonta con seguridad la memoria antes de sacarla. Antes de procesar vuelve a sacar una copia de todo y trabaja sobre ella.

Composite: Combinar dos imágenes en una (Tutorial ImageMagick)

img1

img1

img2

img2

Muchas veces habrás necesitado combinar dos imágenes en una y ya vimos como hacerlo usando Gimp.  ¿Cómo trabajar en GIMP usando capas, máscara, y canal alfa?

Podemos hacerlo de un modo mucho más sencillo y cómodo con el comando composite de ImageMagick disponible para Linux y para Windows. Incluso podemos usar el comando dentro de un script para realizar postprocesado de un montón de imágenes con un propósito particular. Nosotros partiremos de dos imágenes ‘img1.jpg’ e ‘img2.jpg’ y cuatro ejemplos de máscaras para ilustrar diferentes resultados.

mascara1

mascara1

output1composite  img1.jpg  img2.jpg  mascara1.jpg  output1.jpg
mascara2

mascara2

output2composite  img1.jpg  img2.jpg  mascara2.jpg  output2.jpg
mascara3

mascara3

output3composite  img1.jpg  img2.jpg  mascara3.jpg  output3.jpg
mascara4

mascara4

output4composite  img1.jpg  img2.jpg  mascara4.jpg  output4.jpg

El comando empleado para el primer caso es:

composite  img1.jpg  img2.jpg  mascara1.jpg  output1.jpg

Este programa composite es uno de los comandos que proporciona el paquete de utilidades ImageMagick. Yo uso este mismo comando en mis scripts  para hacer transiciones de vídeo entre fotografías estáticas. Para ello voy variando una máscara que simplemente tiene que empezar en blanco y volverse negra gradualmente, usando patrones intermedios que produzcan el efecto de transición deseado. Con ello se puede conseguir cualquier tipo de transición entre dos imágenes.

Página 1 de 2

Funciona con WordPress & Tema de Anders Norén