<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe 350 JPEG-Bilder in eine JMP-Datentabelle mit den tatsächlichen Bildern in einer Ausdrucksspalte eingelesen. Kann ich dann die Bildverarbeitung (z. B. John Ponte-Skript) für die in der Ausdruckspalte enthaltenen Bilder verwenden?
Ich liebe die Idee, die Bilder direkt aus der Datenspalte zu lesen Image Analyzer und schuf das Bildspaltenanalysator . Es funktioniert wie der Image Analyzer, nur dass Sie statt einer Image-Datei Ihre Datentabelle auswählen können, die die Images enthält. Sie können die Bilder durchlaufen und für jedes gewünschte Bild eine Datentabelle erstellen.
Ich wollte Ihnen auch ein Skript geben, das dasselbe tut (automatisiert, keine Interaktivität), aber es sieht so aus vince.faller0 schlag mich dazu
Genießen!
Alles was Sie brauchen ist eine Datentabelle für jedes Bild und nicht die Interaktivität seines Fensters. Das sollte funktionieren.
// Edit von John Pontes Bildanalysator
dt = aktuelle Datentabelle ();
nr = nrows (dt);
image_col = Säule (dt, "Bild" );
zum (i = 1 , i <= nr, i ++,
img = image_col ;
{r, g, b} = img << Pixel erhalten ( "rgb" );
numRows = Nr (r);
numCols = ncol (r);
// Auf Graustufenbild prüfen
grayScale = UND ( Alles (r == g) Alles (g = b));
ob (Graustufen,
// r, g, b sind alle gleich, also die Intensität.
// Farbton und Sat sind 0 (keine Farbe) und die Luminanz entspricht der Intensität.
Intensität = r;
dt_Ref = Neue Tabelle ( "Vergleichsdaten" .
newColumn ( "X" eingestellte Werte ( wiederholen ( 1 :: numCols, numRows))),
newColumn ( "Y" eingestellte Werte ( gestalten ( wiederholen ( 1 :: numRows, numCols) `, numCols, numRows))))
newColumn ( "ICH" , eingestellte Werte (Intensität)),
);
.
// Konvertiere rgb in eine Graustufenmatrix (Intensität)
Intensität = 0,3 * r + 0,59 * g + 0,11 * b;
// Hole die Pixelwerte als JSL-Farben und konvertiere sie dann in Farbton, Helligkeit und Sättigung
// HLS-Farben befinden sich im normalisierten Farbraum (0,0-1,0)
jslColors = img << getPixels ();
{h, l, s} = ColorToHLS (jslColors);
dt = Neue Tabelle ( "Tabelle " || Verkohlen (ich),
newColumn ( "X" eingestellte Werte ( wiederholen ( 1 :: numCols, numRows))),
newColumn ( "Y" eingestellte Werte ( gestalten ( wiederholen ( 1 :: numRows, numCols) `, numCols, numRows))))
newColumn ( "R" , Einstellwerte (r)),
newColumn ( "G" , Einstellwerte (g)),
newColumn ( "B" , Einstellwerte (b)),
newColumn ( "ICH" , eingestellte Werte (Intensität)),
newColumn ( "H" , Werte setzen (h * 360 )),
newColumn ( "L" , Einstellwerte (l)),
newColumn ( "S" Werte setzen (s)),
);
);
);
Idealerweise würde ich gerne eine separate Datentabelle mit den RGB- und HLS-Werten für jedes der 350 .jpeg-Bilder in der Spalte Expression erhalten. Ich fand ein Skript zum Einlesen mehrerer .jpeg-Dateien aus einem Ordner und jeweils einer Bildverarbeitung, aber ich konnte es nicht zum Laufen bringen. Ich konnte die 350 Bilder mit dem Datentyp "Expression" in eine JMP-Tabelle einlesen. Daher habe ich mich gefragt, ob ich die Bilder in dieser Spalte direkt bearbeiten kann.
Und ja, die Bilder sind von Char bis Blob () mit vielen Schwankungen zwischen den Klammern.
Vielen Dank im Voraus für Ihre Hilfe,
Brant
Benötigen Sie die Interaktivität? Die expr () -Spalte sollte nur char to blob () oder etwas sein (wenn ich mich recht erinnere), also sollten alle Informationen vorhanden sein.
Wenn Sie das fantastische Bildanalyseprogramm von John P bearbeiten, um eine Zeile auszuwählen (oder Zeile für Spalte oder etwas anderes benannt), sollte es genauso funktionieren. Wenn Sie dabei Hilfe benötigen, lassen Sie es mich wissen. Ich habe ziemlich ausgiebig mit seinem Skript gespielt.