Re: Fusionar/unir imágenesNo estoy seguro de cuán buena idea es esta, pero tal vez puedas jugar con márgenes negativos (si todas las imágenes tienen el mismo tamaño)
Names Default To Here(1);
img = Open("$SAMPLE_IMAGES/windmap.png", "png");
nw = New Window("",
Lineup Box(N Col(3),
img,img,img,
img,img,img,
img,img,img
)
);
wait(2);
pbs = nw << XPath("//PictBox");
pbs << Margin(Left(-2), Top(-2));
También para mí parece que no hay fronteras entre las imágenes. ¿Todas las imágenes que tienes son del mismo tamaño?
Names Default To Here(1);
img = Open("$SAMPLE_IMAGES/windmap.png", "png");
nw = New Window("no borders",
V List Box(
h list box(img,img,img),
h list box(img,img,img),
h list box(img,img,img)
)
);
Cuadro de lista V + Cuadro de lista H (sin bordes):

Cuadro de alineación () (bordes):

Re: Fusionar/unir imágenesJarmo, eres increíble!
Con su ayuda, pude estudiar esto más. Aparentemente, el problema no se origina en los cuadros de lista, sino en la función Obtener imagen. Con esto, los bordes aparecen en el objeto de imagen resultante. Sin embargo, me gustaría poder convertir la lista en una imagen, ya que es posible realizar más manipulaciones (por ejemplo, recortar).
Entonces, ¿alguna idea de cómo obtener una imagen sin bordes?
Names Default To Here(1);
img = Open("$SAMPLE_IMAGES/windmap.png", "png");
v_list_box = V List Box(
h list box(img,img,img),
h list box(img,img,img),
h list box(img,img,img)
);
outpic = v_list_box << Get Picture;
new window("with borders", outpic);
new window("no borders", v_list_box);
Re: Fusionar/unir imágeneshttps://community.jmp.com/t5/Discusiones/Crop-a-JPG-Image/td-p/441835#M69054
Explica cómo funciona la función de recorte.Re: Fusionar/unir imágenesHola todos,
Aparentemente hay no hay una solución trivial para eliminar los bordes causados por la función Obtener imagen. Es probable que haya muchas otras soluciones, pero terminé de hacer esto usando Python y compartiendo esto aquí si alguien tiene interés en esto. Algo como abajo
Names Default To Here( 1 );
Python Init();
Python Submit( "\[
import cv2
import datetime
path = r'C:\Program Files\SAS\JMP\16\Samples\Images\windmap.png'
img=cv2.imread(path)
img_concat = cv2.vconcat([
cv2.hconcat([img, img, img]),
cv2.hconcat([img, img, img]),
cv2.hconcat([img, img, img]),
])
cv2.imwrite(r'C:\tmp\final_image.png', img_concat)
str='Concationation completed'
]\");
getStr = Python Get( str );
show(getStr);
Python Term();
outpic = Open("C:\tmp\final_image.png",png);
new window("no borders", outpic);
outpic = empty();Aquí, se utiliza la biblioteca OpenCV (cv2), que funciona bien en mi caso, ya que tengo miles de imágenes grandes para procesar. OpenCV admite la utilización de GPU que reduce drásticamente el tiempo de ejecución (varias horas en mi caso).
Re: Fusionar/unir imágenesEn JSL, eso se ve así. No estoy seguro de cuál será el rendimiento, no creo que use muchas CPU.
img = Open("$SAMPLE_IMAGES/windmap.png", "png")<<GETPIXELS></GETPIXELS>
|| es la concatenación matricial horizontal y |/ es vertical. La línea 1 convierte la imagen en una matriz.
Re: Fusionar/unir imágenesHice algunas pruebas para el rendimiento. Getpixels: el método de concatenación de matriz es tres veces más rápido que el cuadro de lista: método Obtener imagen. Y sin fronteras entre los mosaicos. Muy buen consejo. Gracias Graige!
Fusionar/unir imágenesHola,
Estoy trabajando con varios mosaicos de imágenes que necesito compilar en una sola imagen más grande. Esta pregunta se ha formulado anteriormente, por ejemplo:
¿Es posible combinar dos imágenes en una columna de expresión?
La solución genérica es utilizar cuadros de lista H/V. Aquí, mi problema es que la imagen fusionada tiene una línea blanca entre las imágenes que no quiero tener. ¿Hay alguna forma de modificar el estilo del cuadro de lista para que no tenga bordes? ¿O algún otro método para fusionar?
Tendón
Combinación y limpieza de datos