Mostrando entradas con la etiqueta jpg. Mostrar todas las entradas
Mostrando entradas con la etiqueta jpg. Mostrar todas las entradas

lunes, 9 de septiembre de 2019

Vacaciones y la recuperación de fotos perdidas. Photorec

En estas vacaciones no hemos aplicado tecnología alguna, lo que es muy bueno para el estrés, salvo apretar un tornillo con una llave allen y darle al botón para hacer fotos. Con la nueva cámara TZ-100 es algo más complicado que dar a un botón, por que se puede manejar casi todo, pero una vez aprendido lo fundamental, ya automatizas las opciones. Sin embargo, a la vuelta si hubo que aplicar algo de técnicas de recuperación. La cosa fue así; un día estaba realizando fotos y uno de los fotografíados no estaba contento con la foto en la que salía y decidió borrarla; no sé como hizo, pero en vez de borrar una foto, borró 121 —dos días enteros de turismo—. No me preocupé mucho, por que se pueden recuperar fácilmente con photorec, como ya hemos visto en alguna entrada previa.

https://www.cgsecurity.org/mw/images/Photorec.png

Por supuesto, por seguridad, y para evitar que se perdiera cualquiera de las fotos borradas, cambié la tarjeta de datos de la cámara, y así las fotos nuevas no reescribirían las áreas donde están las fotos borradas —como sabemos, al borrar lo único que se hace es borrar en la tabla de partición la localización de los datos del fichero, pero no se borran los datos en si—. Al cambiar de tarjeta, no hay borrado accidental de los datos. Después, con tranquilidad, se aplica photorec, que instalamos mediante testdisk

su -c 'dnf install testdisk'
    passwd
photorec

y listo; hay que hacer algunas cosillas después de que se ejecute photorec, pero son bastante intuitivas. Como aviso, lo más delicado es decir si se revisa toda la unidad o la partición; el resultado suele ser mejor eligiendo la partición.

Sin embargo esta cámara tiene sus "novedades". La tengo configurada para grabar una imagen raw, formato ra2, y una jpg ya transformada desde ese raw. Al recuperar las fotos me encontré con unas 115 ra2 y 15 jpg tamaño normal y muchas jpg tamaño de alrededor de 5kb. Las 6 imágenes jpg sin raw tienen una explicación sencilla; son las fotos panorámicas, que la cámara no puede grabar como raw. Pero quedan 9 jpg con su raw, es decir, recuperados los dos ficheros, y luego 100 jpg miniatura con 100 raws completos. Yo supongo, y solo es una suposición, que la cámara no guarda todos los jpgs automáticamente, sino que graba un fichero con las características de control que quiere aplicar al raw y cuando la extraes las fotos, la propia cámara compone el jpg. Como es natural, lo que hice fue hacer una transformación de cada raw, directamente. Algunas han quedado muy bien, y otras no tanto. Habrá que revisarlas cuando haga falta. Eso sí, photorec recuperó sin problemas las 121 fotos, y no hubo que lamentar la pérdida de fotos importantes.

Para terminar, recomiendo llevar siempre una segunda tarjeta de memoria, para evitar tener que utilizar una en la que haya que recuperar material —u otras razones—, y dos baterías, por que si no luego de la foto 250 no se pueden sacar más. Y, por supuesto, un cargador para poder cargar la que has terminado cada día.

viernes, 14 de junio de 2019

Escanear fotos y texto hasta obtener un PDF de calidad suficiente

En este caso hablamos de un manual de diagnóstico editado en 1979, con una fotos y claves de identificación que utilizamos continuamente en el laboratorio. Como es natural, con tanto uso en un lugar no demasiado limpio —se trata de identificación de helmintos en muestras fecales— el manual está cada vez peor, no solo por la edad, si no también por el uso. Es un libro descatalogado, así que no hay manera de volverlo a adquirir. Para no perderlo, se nos ha ocurrido escanearlo y conservar una versión en PDF en color. El equipamiento disponible para hacerlo es una Canon i-sensys MF421dw, que escanea de maravilla. Lo ideal sería recortar el libro y escanearlo desde el cargador automático con lo que obtendríamos directamente un PDF. Sin embargo, no queremos destruir aun más el manual, así que hubo que escanearlos página a página. Además, como el manual tiene un formato B5, aproximadamente, luego habrá que recortar, así que la idea es escanear en formato jpg para manipular las imágenes en bloque con imagemagick; bajo esas circunstancias, la impresora-escáner genera una imagen jpg de cada página. Extraídas todas las páginas nos enfrentamos a 178 imágenes jpg, con un tamaño de 2480x3504 píxeles, 300 puntos por pulgada. Va a ser más complejo que una simple conversión como la que hacíamos aquí. Problemas:
1. Ese tamaño se ajusta a un A4, sobra márgenes por todos los lados hasta acercarnos a la página original. Hay que recortar
2. La mitad están dadas la vuelta, ya que el escaneo se hace más fácilmente rotando las impares, debido a la estructura de la impresora. Hay que rotar la mitad de las páginas
3. Hay que convertir una serie de imágenes a un fichero PDF sin perder calidad


Primero hacemos una copia de las imágenes, por que escanear ha llevado el 97% del tiempo y no queremos repetir. Basándonos en imagemagick para hacer cambios en bloque, y por orden:

1. Recortar: cuando se escanea un libro no salen todas las páginas iguales. Sobre el A4 que escanea la máquina, unos van unos milímetros más hacía aquí o allá. Revisando varias muestras a lo largo de las imágenes con Gimp, nos queda un área de recorte de 1890x2815 para evitar perder información (aproximadamente 16x24 cm; más grande que un A4 2014 —148x210— y menos que un B5 —176x250—; seguramente en el año 1979 las ISOs no perseguían a las imprentas. Las medidas estándar se pueden comprobar aquí). Además hay que recortar 20 puntos por arriba y 20 por la izquierda. El comando para realizar esto en bloque es

convert *.JPG -crop 1890x2815+20+20 output.jpg

Este comando utiliza convert para recortar (crop) un rectángulo de 1890 píxeles de ancho y 2815 de alto, recortando 20 pixeles a la izquierda y 20 arriba. El JPG inicial va en mayúsculas por que la impresora extrae los ficheros con la extensión en mayúsculas.

2. Rotar: solo hay que rotar las páginas impares, así que las separé en un directorio diferente. Seguro que con un script de bash se podría evitar este paso, pero así somos más rápidos, efectivos —cumplimos el objetivo— y eficientes —se usan menos recursos, es decir, gastamos menos el cerebro—. Eso sí, hay que evitar un cambio de nombre, ya que es muy importante mantener el orden de los ficheros (output-0.jpg, output-1.jpg...). Comando:

convert *.jpg -rotate "180" -set filename:basename "%[basename]" "%[filename:basename].jpg"

De esta manera  -rotate "180" las gira 180º y -set filename:basename "%[basename]" "%[filename:basename].jpg hace que sobreescribamos los ficheros —por eso hacemos primero una copia de seguridad; nunca se sabe lo que puede pasar—.

3. Conversión de 178 ficheros jpg a un PDF:

convert *.jpg -density 300 -size 1890x2815 test.pdf

Inicialmente ejecuté así para conservar el tamaño, pero no es necesario; si ponemos solamente

convert *.jpg test.pdf

queda igual, ya que las imágenes ya tienen la densidad y resolución deseada.

Queda por decir que antes de ejecutar este último comando hay que corregir los nombres de los ficheros, por que imagemagick los ordenó al recortarlos como

output-0.jpg, 1, 2.... 10,11... 100, 101

y luego al aplicar la última conversión pone el 100 y siguientes antes que el 20, ya que ordena como cadema alfanumérica, sin considerar el valor real del número. En gnome no hay problema, ya que podemos seleccionar por bloques e introducir cambios por grupos, por ejemplo:


Y listo. Quedó perfecto como copia para el laboratorio. No puedo enseñar una copia, por que tiene derechos de autor y lo vamos a usar de manera interna como copia privada, para evitar que se destruya completamente el original, pero no se puede compartir. Sin embargo, para cuando sea necesario hacer una copia de seguridad de un manual con imágenes que se está dañando por su uso continuo, con un escáner que de calidad suficiente y convert de imagemagick lo arreglamos.
El siguiente paso sería intentar hacer OCR del texto, pero este manual es fundamentalmente foto, y no estoy seguro que sea necesario o que vaya a quedar mejor. Eso queda para un ejemplar que sea fundamentalmente texto.

jueves, 26 de febrero de 2015

Formato de imágenes para impresoras de sublimación

o al menos para el modelo del que yo dispongo, una Canon Selphy CP740


La historia comenzó así. De repente necesitaba imprimir dos imágenes en color; en general uso una HP8000, pero la tengo en reparación, así que solo disponía de la Selphy CP740, que es una impresora de sublimación que solo uso cuando alguien me pide una copia en papel "a la antigua" de una foto. Después de modificar las fotos hasta lograr el efecto requerido, intenté imprimir y...

no detectaba las imágenes (la impresora la uso directamente por tarjeta SD sin conexión al ordenador). Empecé a cambiar el formato de las unidades flash (SD y lápices USB), hasta que utilicé directamente la de la cámara y me dí cuenta de que las fotos originales sí eran visibles y las JPG comprimidas en Gimp no.
Comprobé los diferentes formatos de compresión a jpg y las opciones avanzadas que ofrece Gimp


y tras diferentes intentos quedó claro que la compresión en jpg en Gipm para ser interpretada por la Selphy CP740 debe llevar desactivado la función de progresivo, tal como aparece en la siguiente imágen


Solucionado el problema.