J'aime l'idée de lire les images directement à partir de la colonne de données, alors je viens de modifier le Analyseur d'images et créé le Analyseur de colonne d'image . Cela fonctionne comme l'analyseur d'images, mais au lieu de choisir un fichier image, vous pouvez choisir votre table de données contenant les images. Vous pouvez parcourir les images et créer un tableau de données pour l’image de votre choix.
J'allais aussi vous donner un script qui ferait la même chose (plus automatisé, pas d'interactivité) mais ça ressemble à vince.faller0 me battre à elle.
Prendre plaisir!
Si tout ce dont vous avez besoin, c'est d'un tableau de données pour chaque image et non de l'interactivité de sa fenêtre. Cela devrait marcher.
// Edit de l'analyseur d'images de John Ponte
dt = tableau de données actuel ();
nr = maintenant (dt);
image_col = Colonne (dt, "Image" )
pour (i = 1 , i <= nr, i ++,
img = image_col ;
{r, g, b} = img << Obtenez des pixels ( "rgb" )
numRows = maintenant (r);
numCols = ncol (r);
// Vérifier l'image en niveaux de gris
grayScale = ET ( Tout (r == g), Tout (g == b));
si (échelle de gris,
// r, g, b sont tous identiques, c'est donc l'intensité.
// hue et sat sont à 0 (pas de couleur) et la luminance est la même que l'intensité.
intensité = r;
dt_Ref = Nouvelle table ( "Donnée de référence" ,
nouveauColonne ( "X" , définir des valeurs ( répéter ( 1 :: numCols, numRows))),
nouveauColonne ( "Y" , définir des valeurs ( forme ( répéter ( 1 :: numRows, numCols) `, numCols, numRows))),
nouveauColonne ( "JE" , valeurs de consigne (intensité)),
)
,
// Conversion de rgb en matrice d'échelle de gris (intensité)
intensité = 0,3 * r + 0,59 * g + 0,11 * b;
// Obtenir les valeurs de pixels en tant que couleurs JSL, puis convertir en teinte, luminosité et saturation
// les couleurs HLS sont dans un espace colorimétrique normalisé (0.0-1.0)
jslColors = img << getPixels ();
{h, l, s} = ColorToHLS (jslColors);
dt = Nouvelle table ( "Table " || Carboniser (je),
nouveauColonne ( "X" , définir des valeurs ( répéter ( 1 :: numCols, numRows))),
nouveauColonne ( "Y" , définir des valeurs ( forme ( répéter ( 1 :: numRows, numCols) `, numCols, numRows))),
nouveauColonne ( "R" , définir les valeurs (r)),
nouveauColonne ( "G" , définir les valeurs (g)),
nouveauColonne ( "B" , définir les valeurs (b)),
nouveauColonne ( "JE" , valeurs de consigne (intensité)),
nouveauColonne ( "H" , définir des valeurs (h * 360 )),
nouveauColonne ( "L" , définir les valeurs (l)),
nouveauColonne ( "S" , définir les valeurs),
)
)
)
Idéalement, j'aimerais obtenir un tableau de données séparé avec les valeurs RVB et HLS pour chacune des 350 images .jpeg de la colonne Expression. J'ai trouvé le script pour lire dans plusieurs fichiers .jpeg d'un dossier et Image Processing chacun mais je ne pouvais pas le faire fonctionner. J'ai été capable de lire les 350 images dans une seule table JMP en utilisant le type de données Expression. Je me demandais donc si je pouvais traiter directement les images de cette colonne.
Et oui, les images sont de type Char to Blob () avec beaucoup de charabia entre les parenthèses.
Merci d'avance pour votre aide,
Brant
Avez-vous besoin de l'interactivité? La colonne exprem () devrait simplement être un caractère de blob () ou quelque chose (si je me souviens bien), donc toute l'information devrait être là.
Si vous modifiez l’impressionnant analyseur d’images de John P pour choisir une ligne (ou une ligne nommée ligne par colonne ou autre), cela devrait fonctionner de la même manière. Si vous avez besoin d'aide pour cela, faites le moi savoir. J'ai beaucoup joué avec son script.