Re: Unire/unire immaginiNon sono sicuro di quanto sia buona l'idea, ma forse puoi giocare con margini negativi (se tutte le immagini hanno le stesse dimensioni)
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));
Anche per me sembra che non ci siano confini tra le immagini. Tutte le immagini che hai hanno le stesse dimensioni?
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)
)
);
Casella di riepilogo V + Casella di riepilogo H (senza bordi):

Lineup Box() (bordi):

Re: Unire/unire immaginiJarmo, sei fantastico!
Con il tuo aiuto, sono stato in grado di studiarlo di più. Apparentemente il problema non è originato dalle caselle di riepilogo ma dalla funzione Ottieni immagine. Con questo, i bordi appaiono sull'oggetto immagine risultante. Tuttavia, vorrei essere in grado di convertire l'elenco in immagine poiché è possibile un'ulteriore manipolazione (ad esempio il ritaglio).
Quindi, qualche idea su come ottenere un'immagine senza confini?
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: Unire/unire immaginihttps://community.jmp.com/t5/Discussions/Crop-a-JPG-Image/td-p/441835#M69054
Spiega come funziona la funzione di ritaglio.Re: Unire/unire immaginiCiao a tutti,
A quanto pare c'è nessuna soluzione banale per ottenere i bordi causati dalla funzione Ottieni immagine. Probabilmente ci sono molte altre soluzioni, ma ho finito per farlo usando Python e condividendolo qui se qualcuno è interessato a questo. Qualcosa come sotto
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();Qui viene utilizzata la libreria OpenCV (cv2) che funziona bene nel mio caso poiché ho migliaia di immagini grandi da elaborare. OpenCV supporta l'utilizzo della GPU che riduce drasticamente i tempi di esecuzione (diverse ore nel mio caso).
Re: Unire/unire immaginiIn JSL, sembra così. Non sono sicuro di quali saranno le prestazioni, non credo che utilizzerà molte CPU.
img = Open("$SAMPLE_IMAGES/windmap.png", "png")<<GETPIXELS></GETPIXELS>
|| è la concatenazione orizzontale della matrice e |/ è verticale. La riga 1 trasforma l'immagine in una matrice.
Re: Unire/unire immaginiHo fatto alcuni test per la performance. Getpixels: il metodo di concatenazione della matrice è tre volte più veloce del metodo Casella di riepilogo - Ottieni immagine. E nessun confine tra le tessere. Ottimo consiglio. Grazie Graige!
Unione/unione di immaginiCiao,
Sto lavorando con più riquadri di immagini che devo compilare in un'unica immagine più grande. Questa domanda è stata posta in precedenza, ad esempio:
È possibile combinare due immagini in una colonna di espressioni?
La soluzione generica consiste nell'utilizzare le caselle di elenco H/V. Qui, il mio problema è che l'immagine unita ha una linea bianca tra le immagini che non voglio avere. Esiste un modo per modificare lo stile della casella di riepilogo in modo che non abbia bordi? O qualche altro metodo per eseguire la fusione?
Tendine
Combinazione e pulizia dei dati