If all you need is a data table for each image and not the interactivity of his window. This should work.
//Edit of John Ponte's image analyzer
dt = current data table();
nr = nrows(dt);
image_col = Column(dt, "Image");
for(i=1, i<=nr, i++,
img = image_col;
{r,g,b} = img << Get Pixels("rgb");
numRows = nrow(r);
numCols = ncol(r);
// Check for gray scale image
grayScale = AND( All(r==g), All(g==b) );
if (grayScale,
// r, g, b are all the same, so that is the intensity.
// hue and sat are 0 (no color) and luminance is the same as the intensity.
intensity = r;
dt_Ref = New Table("Reference Data",
newColumn("X", set values(repeat(1::numCols, numRows))),
newColumn("Y", set values(shape(repeat(1::numRows,numCols)`,numCols,numRows))),
newColumn("I", set values(intensity)),
);
,
// Convert rgb to gray-scale (intensity) matrix
intensity = 0.3*r + 0.59*g + 0.11*b;
// Get the pixel values as JSL colors then convert to hue, lightness and saturation
// HLS colors are in normalized color space (0.0-1.0)
jslColors = img << getPixels();
{h, l, s} = ColorToHLS(jslColors);
dt = New Table("Table "||Char(i),
newColumn("X", set values(repeat(1::numCols, numRows))),
newColumn("Y", set values(shape(repeat(1::numRows,numCols)`,numCols,numRows))),
newColumn("R", set values(r)),
newColumn("G", set values(g)),
newColumn("B", set values(b)),
newColumn("I", set values(intensity)),
newColumn("H", set values(h*360)),
newColumn("L", set values(l)),
newColumn("S", set values(s)),
);
);
);