Hace unos meses, un cliente de JMP se comunicó con el Soporte Técnico de JMP para preguntar sobre la funcionalidad de la imagen en JMP 9 . En particular, el cliente preguntó si había alguna función que combinara dos imágenes. El soporte técnico me envió esa pregunta.
Yo había agregado alguna funcionalidad de imagen en JMP 9, incluyendo una serie de funciones que manipularían una sola imagen. Pero no había agregado ninguna función que actuara sobre varias imágenes juntas. Pensé en esta solicitud y me di cuenta de que esto sería bastante fácil de hacer en JSL (JMP Scripting Language) utilizando la funcionalidad existente.

Rápidamente armé un sencillo script JSL para mezclar dos imágenes. La GUI le permite al usuario especificar dos imágenes y controlar la proporción de Image1 a Image2. También muestra la imagen combinada resultante para el usuario.
Los botones, etiquetados Image1 e Image2, muestran un selector de archivos y permiten al usuario navegar a las imágenes que se van a mezclar. Una vez que se selecciona una imagen, el usuario obtiene una pequeña vista de la imagen. El control deslizante define la proporción de Image1 a Image2. Con el pulgar a la izquierda del control deslizante, el resultado es 100% Image1. Un pulgar centrado en el control deslizante resultará en 50% de imagen1 y 50% de imagen2.
El área de visualización grande en la parte superior es para mostrar los resultados de las dos imágenes combinadas. La imagen combinada tendrá el mismo tamaño que las imágenes originales, y el área de visualización cambiará de tamaño según corresponda. Actualmente, asumo que las dos imágenes a mezclar son del mismo tamaño. Eventualmente, tal vez agregue algo de lógica para manejar el caso en el que son diferentes. O tal vez solo deje eso como un ejercicio para ti!
La motivación para querer esta funcionalidad originalmente era comparar fotografías tomadas antes y después de un tornado. Un tornado mortal de EF5 había golpeado a Joplin, Missouri, y el usuario de JMP quería comparar estas imágenes de una manera mezclada. Busqué en Google y encontré algunas imágenes tomadas alrededor de Joplin antes y después del tornado. Las imágenes no estaban exactamente alineadas, pero estaban lo suficientemente cerca para trabajar. Hice algunas manipulaciones de las imágenes fuera de JMP para alinearlas mejor, y las recorté para que fueran del mismo tamaño. Aquí hay un ejemplo de un conjunto de imágenes de antes y después con una mezcla del 50%.

Puede descargar todo el script JSL desde el Intercambio de archivos JMP . El guion se llama ImageBlend.jsl . Pero el código más interesante en el script es la función de fusión real:
doblendar = expr (
{mat1R, mat1G, mat1B} = img1 << getPixels ( rgb );
{mat2R, mat2G, mat2B} = img2 << getPixels ( rgb );
mat3R = mat2R * por + mat1R * ( 1.0 - por);
mat3G = mat2G * por + mat1G * ( 1.0 - por);
mat3B = mat2B * por + mat1B * ( 1.0 - por);
img3 << setPixels ( rgb , {mat3R, mat3G, mat3B});
imgBlendBox << volver a ver
);
El comando, getPixels ("rgb"), devuelve cada imagen como una colección de tres matrices, una para cada componente de color, rojo, verde y azul. Para combinar las imágenes, multiplicamos Image2 por el porcentaje y luego lo agregamos a Image1 multiplicado por 1 menos el porcentaje. Luego lo configuramos como la imagen resultante, Image3. Eso es todo al respecto. Para obtener una explicación más detallada de getPixels (), así como otra funcionalidad de imagen, consulte otra publicación de mi blog, Mejora tu imagen con JMP 9 .
Si asististe al JMP Cumbre Descubrimiento 2011 , todo esto puede parecerte familiar. Lo demostré como parte de mi presentación, La imagen no lo es todo, pero seguro que es algo en JMP 9 , aunque puede que reconozca que decidí cambiar la interfaz ligeramente.
Como siempre, déjame saber lo que piensas.