Costruisci un'immagine da una tabella di dati, quindi applica i filtri jsl su di essaCIAO,
Lavoro molto con tabelle di dati X/Y/metriche che sono simili alle immagini e su cui vorrei applicare filtri JMP ("despeckle", "reduce noise",... Ero molto interessato a questa presentazione di Julia Gong: "Utilizzo delle funzionalità di analisi delle immagini di JMP® per estrarre le caratteristiche delle lesioni cutanee"), quindi tornare alla tabella dei dati. Sembra più facile usare quel tipo di filtro dopo aver trasformato i miei dati in immagini piuttosto che eseguire alcuni complicati calcoli matriciali.
Come:

per ottenere ad esempio solo i pixel di alto livello del cluster in basso a destra con filtro jsl di riduzione del rumore, supponendo che i pixel isolati siano rumore e debbano essere filtrati

Ma non capisco come creare una matrice di immagini JMP dai miei dati.
Ad esempio se parto da una tabella con X, Y e una metrica sotto e come allegato

Poi:
dt =current data table();
// the X,Y, metric matrix
mat = (:X << getvalues) || (:Y << getvalues) || (:metric << getvalues);
Né questo comando:
img = New Image( "r",{mat});né questo:
img << Set pixels ("r",{mat});... sembra funzionare.
Come posso trasformare questa tabella in una matrice immagine e applicarvi i filtri JMP?
Grazie!
Franco
Consumatori e ricerche di mercatoEsplorazione e visualizzazione dei datiRi: Costruisci un'immagine da una tabella di dati, quindi applica filtri jsl su di essaGrande! Grazie per l'aiuto!
Ri: Costruisci un'immagine da una tabella di dati, quindi applica filtri jsl su di essaDovrai fare qualcosa del genere:
NamesDefaultToHere(1);
dt = Data table("data_table.jmp");
// The values of the metric need to be rescaled to [0, 1]
metric = Column(dt, 3) << getValues;
maxMetric = Max(metric);
minMetric = Min(metric);
metric = (metric - minMetric) :\</img> (maxMetric - minMetric);
// Column vector to hold the pixel values for the image
pixVals = J(NRow(metric), 1, .);
for (p=1, p<=NRow(pixVals), p++,
pixVals[p] = RGB Color(metric[p], metric[p], metric[p]);
);
// Reshape 'pixVals' to be a rectangular matrix (assumes 'X' and 'Y' both start at 1)
xMax = Max(Column(dt, "X") << getValues);
yMax = Max(Column(dt, "Y") << getValues);
pixVals = Shape(pixVals, xMax, yMax);
// Make an image, make it a bit bigger, and put it in a window
im = New Image();
im << setPixels( pixVals );
im << setSize({10*xMax, 8*yMax});
NewWindow("My Image", im);
Usa 'Help > Scripting Index' per chiarire come funziona il codice.
