<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho letto 350 immagini .jpeg in una tabella di dati JMP con le immagini reali in una colonna di espressioni. Posso quindi utilizzare Image Processing (ad esempio, script di John Ponte) sulle immagini contenute nella colonna delle espressioni?
Adoro l'idea di leggere le immagini direttamente dalla colonna di dati, quindi ho appena modificato il file Analizzatore di immagini e creato il Analizzatore di colonne di immagini . Funziona come l'analizzatore di immagini eccetto che invece di scegliere un file immagine puoi scegliere la tua tabella di dati che contiene le immagini. È possibile scorrere le immagini e creare una tabella dati per qualsiasi immagine desiderata.
Avrei anche intenzione di darti una sceneggiatura che avrebbe fatto la stessa cosa (più automatizzata, senza interattività), ma sembra vince.faller0 bastonami
Godere!
Se tutto ciò di cui hai bisogno è una tabella di dati per ogni immagine e non l'interattività della sua finestra. Questo dovrebbe funzionare.
// Modifica dell'analizzatore di immagini di John Ponte
dt = tabella dei dati corrente ();
nr = nrows (Dt);
image_col = Colonna (Dt, "Immagine" );
per (I = 1 , <= nr, i ++,
img = image_col ;
{r, g, b} = img << Ottieni Pixel ( "Rgb" );
numRows = nrow (R);
numCols = ncol (R);
// Controlla l'immagine in scala di grigi
grayScale = E ( Tutti (== g r), Tutti (g == b));
Se (Scala di grigi,
// r, g, b sono tutti uguali, quindi questa è l'intensità.
// hue e sat sono 0 (nessun colore) e la luminanza è uguale all'intensità.
intensità = r;
dt_Ref = Nuova tabella ( "Dati di riferimento" ,
newColumn ( "X" , imposta valori ( ripetere ( 1 :: numCols, numRows))),
newColumn ( "Y" , imposta valori ( forma ( ripetere ( 1 :: numRighe, numColonne) `, numColonne, numRows))),
newColumn ( "IO" , imposta valori (intensità)),
);
,
// Converti rgb in matrice di grigio (intensità)
intensità = 0.3 * r + 0.59 * g + 0,11 * B;
// Ottieni i valori dei pixel come colori JSL, quindi converti in tonalità, luminosità e saturazione
// I colori HLS sono nello spazio colore normalizzato (0.0-1.0)
jslColors = img << getPixels ();
{h, l, s} = ColorToHLS (jslColors);
dt = Nuova tabella ( "Tavolo " || carbonizzare (io),
newColumn ( "X" , imposta valori ( ripetere ( 1 :: numCols, numRows))),
newColumn ( "Y" , imposta valori ( forma ( ripetere ( 1 :: numRighe, numColonne) `, numColonne, numRows))),
newColumn ( "R" , imposta valori (r)),
newColumn ( "G" , imposta valori (g)),
newColumn ( "B" , imposta valori (b)),
newColumn ( "IO" , imposta valori (intensità)),
newColumn ( "H" , imposta valori (h * 360 )),
newColumn ( "L" , imposta valori (l)),
newColumn ( "S" , imposta valori (s)),
);
);
);
Idealmente mi piacerebbe ottenere una tabella dati separata con i valori RGB e HLS per ciascuna delle 350 immagini .jpeg nella colonna Espressione. Ho trovato uno script per la lettura in più file .jpeg da una cartella e Image Processing ciascuno, ma non ero in grado di farlo funzionare. Sono stato in grado di leggere le 350 immagini in una tabella JMP usando il tipo di dati Expression, quindi mi chiedevo se potevo elaborare direttamente le immagini in quella colonna.
E sì, le immagini sono Char to Blob () con molto jibberish tra le parentesi.
Grazie in anticipo per il vostro aiuto,
Brant
Hai bisogno dell'interattività? La colonna expr () dovrebbe essere solo char to blob () o qualcosa (se ricordo bene), quindi tutte le informazioni dovrebbero essere lì.
Se modifichi il fantastico analizzatore di immagini di John P per scegliere una riga (o una riga con nome per colonna o qualcosa del genere), dovrebbe funzionare lo stesso. Se hai bisogno di aiuto con questo, fammi sapere. Ho giocato molto con la sua sceneggiatura.