Construya una imagen a partir de una tabla de datos y aplique filtros en ellaHola,
Trabajo mucho con tablas de datos X / Y / métricas que son similares a imágenes y en las que me gustaría aplicar filtros JMP ("eliminar", "reducir ruido", ... Me interesó mucho esta presentación de Julia Gong: "Uso de las capacidades de análisis de imágenes de JMP® para extraer las características de las lesiones cutáneas") y luego transformar de nuevo a la tabla de datos. Parece más fácil usar ese tipo de filtro después de transformar mis datos en imágenes que realizar algunos cálculos matriciales complicados.
Me gusta:

para obtener, por ejemplo, solo el grupo inferior derecho con reducción de ruido

Pero no entiendo cómo crear una matriz de imágenes JMP a partir de mis datos.
Por ejemplo, si empiezo desde una tabla con X, Y y una métrica a continuación y como adjunto

Luego:
dt =current data table();
// the X,Y, metric matrix
mat = (:X << getvalues) || (:Y << getvalues) || (:metric << getvalues);
Ni este comando:
img = New Image( "r",{mat});ni este:
img << Set pixels ("r",{mat});... parece que funciona.
¿Cómo puedo transformar esta tabla en una matriz de imagen y aplicarle filtros JMP?
¡Gracias!
Franck
GráficosScriptingRe: construye una imagen a partir de una tabla de datos y luego aplica filtros jsl en ellaDeberá hacer algo como esto:
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);
Utilice 'Ayuda> Índice de secuencias de comandos' para aclarar cómo funciona el código.
