Re : Fusionner/assembler des imagesJe ne sais pas si c'est une bonne idée, mais vous pouvez peut-être jouer avec des marges négatives (si toutes les images ont la même taille)
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));
Aussi pour moi, il semble qu'il n'y ait pas de frontières entre les images. Toutes les images que vous avez ont-elles la même taille ?
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)
)
);
Zone de liste V + zone de liste H (sans bordure) :

Lineup Box() (bordures):

Re : Fusionner/assembler des imagesJarmo, tu es incroyable!
Avec votre aide, j'ai pu étudier cela davantage. Apparemment, le problème ne provient pas des zones de liste mais de la fonction Get Picture. Avec cela, les bordures apparaissent sur l'objet image résultant. Cependant, j'aimerais pouvoir convertir la liste en image, car une manipulation supplémentaire (par exemple, un recadrage) est possible.
Alors, avez-vous des idées pour obtenir une image sans frontières ?
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 : Fusionner/assembler des imageshttps://community.jmp.com/t5/Discussions/Crop-a-JPG-Image/td-p/441835#M69054
Explique le fonctionnement de la fonction de recadrage.Re : Fusionner/assembler des imagesSalut tout le monde,
Apparemment il y a pas de solution triviale pour obtenir des bordures causées par la fonction Get Picture. Il existe probablement de nombreuses autres solutions de contournement, mais j'ai fini par le faire en utilisant Python et en le partageant ici si quelqu'un est intéressé par cela. Quelque chose comme ci-dessous
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();Ici, la bibliothèque OpenCV (cv2) est utilisée, ce qui fonctionne bien dans mon cas car j'ai des milliers de grandes images à traiter. OpenCV prend en charge l'utilisation du GPU qui réduit considérablement le temps d'exécution (plusieurs heures dans mon cas).
Re : Fusionner/assembler des imagesEn JSL, cela ressemble à ceci. Je ne sais pas quelles seront les performances, je ne pense pas qu'il utilisera de nombreux processeurs.
img = Open("$SAMPLE_IMAGES/windmap.png", "png")<<GETPIXELS></GETPIXELS>
|| est la concaténation horizontale de la matrice et |/ est vertical. La ligne 1 transforme l'image en matrice.
Re : Fusionner/assembler des imagesJ'ai fait des tests de performances. Getpixels - la méthode de concaténation de la matrice est trois fois plus rapide que Zone de liste - Méthode Get Picture. Et pas de frontières entre les tuiles. Très bon conseil. Merci Graige!
Fusionner/assembler des imagesBonjour,
Je travaille avec plusieurs vignettes d'images que je dois compiler en une seule image plus grande. Cette question a été posée plus tôt, par exemple :
Est-il possible de combiner deux images dans une seule colonne d'expression ?
La solution générique consiste à utiliser des zones de liste H/V. Ici, mon problème est que l'image fusionnée a une ligne blanche entre les images que je ne veux pas avoir. Existe-t-il un moyen de modifier le style de la zone de liste pour qu'il n'y ait pas de bordures ? Ou une autre méthode pour effectuer une fusion ?
Tendon
Mélange et nettoyage des données