Schneiden Sie ein JPG-Bild zuIch versuche, mit dem folgenden Skript den hellgrauen Rand von der Außenseite des Wafermap-Bilds unten abzuschneiden. Ich glaube, ich verstehe nicht, wie die Zuschneidemeldung funktioniert, da es keinen Unterschied zwischen den Vorher- und Nachherbildern gibt.
Irgendeine Idee, was ich falsch mache?
Prost, Troy
img = open("D:\wafer.jpg", jpg);
win1 = newWindow("Original", img);
img << crop(left(5),right(5),top(5),bottom(5));
win2 = newWindow("Cropped", img);
img << savePicture("D:\waferCropped.jpg", jpg);

Erweiterte statistische ModellierungAutomatisierung und SkripterstellungDatenexploration und -visualisierungMassenanpassungBetreff: Ein JPG-Bild zuschneiden@Georg wies auf https://www.jmp.com/support/help/en/16.1/?os=win&source=application&utm_source=helpmenu&utm_medium=application#page/jmp/images.shtml
Was mit dem identisch zu sein scheint Scripting-Anleitung . Syntaxreferenz.

Ich würde auf den Skriptindex verweisen:

Beide sagen „erstellt ein neues Bild“, aber nur das vorhandene Bild wird geändert, was Teil der Verwirrung war, und auch die Parameter werden nicht gut erklärt. Für ein Segment gibt es eine andere Ernte, die sich von dieser unterscheidet.
Danke fürs Anschauen!
Betreff: Ein JPG-Bild zuschneidenVielen Dank, dass Sie mich darauf aufmerksam gemacht haben. Auf welches Dokument wird in früheren Kommentaren verwiesen?
Danke,
Qiana
Betreff: Ein JPG-Bild zuschneidenJa, es ist eine nicht offensichtliche Schnittstelle und wünscht sich ein besseres Dokument. @Anonym
pixels = [
-11 -11 -11 -11 -11 -11 -11 -11 -11,
-11 -11 -91 -99 -99 -99 -99 -92 -11,
-11 -11 -99 -99 -99 -99 -99 -99 -11,
-11 -11 -99 -99 -99 -99 -99 -99 -11,
-11 -11 -99 -99 -99 -99 -99 -99 -11,
-11 -11 -93 -99 -99 -99 -99 -94 -11];
img = New Image( pixels );
{hSize, ySize} = img << size;
Show( img << getsize, img << getpixels );
// crop the -11 out of the image
img << crop( Left( 2 ), Right( 8 ), top( 1 ), bottom( 6 ) );
Show( img << getsize, img << getpixels );
//// img << getsize = {6, 5};
//// img << getpixels =
//// [ -91 -99 -99 -99 -99 -92,
//// -99 -99 -99 -99 -99 -99,
//// -99 -99 -99 -99 -99 -99,
//// -99 -99 -99 -99 -99 -99,
//// -93 -99 -99 -99 -99 -94];
The zero-based pixel indexes are on the hairlines between the pixels.The zero-based pixel indexes are on the hairlines between the pixels.The zero-based pixel indexes are on the hairlines between the pixels.The zero-based pixel indexes are on the hairlines between the pixels.The zero-based pixel indexes are on the hairlines between the pixels.Die nullbasierten Pixelindizes liegen auf den Haarlinien zwischen den Pixeln.
Betreff: Ein JPG-Bild zuschneidenLiebling @Thierry_S ,
Ich hätte genauso gedacht, dieses Verhalten ist seltsam, da in der Dokumentation steht: „Erstellt neues Bild ...“.
Aber tatsächlich verändert das Zuschneiden das aktuelle Bild, daher ist die Dokumentation in meinen Augen nicht korrekt, sie ist irreführend.
@tonya_mauldin , denken Sie, dass die Dokumentation entsprechend geändert werden muss?
Names Default To Here( 1 );
img = Open( "$SAMPLE_IMAGES/tile.jpg", jpg );
Print( "Size before crop:", img << get size );
img << Crop(
Left( 50 ),
Right( 400 ),
Top( 50 ),
Bottom( 400 )
);
Print( "Size before crop:", img << get size );
print("So crop changes the image and does not create a new one as written in the documentation");Bilder (jmp.com)
Betreff: Ein JPG-Bild zuschneidenGut gemacht. Die von Ihnen angegebenen Definitionen für „Rechts“ und „Unten“ stimmen nicht genau mit Ihren Angaben überein. Dein Skript ist genau richtig!
Siehe das Skript unten.
Names Default To Here( 1 );
img = Open( "$SAMPLE_IMAGES/tile.jpg", jpg );
s = {w,h} = img << get size();
show( s ); //{451, 451}
obj = New Window( "tile(40,40)", img );
Wait( 1 );
img << Crop( Left( 50 ), Right( 100 ), Top( 60 ), Bottom( 150 ) );
s = {w,h} = img << get size();
show( s ); //{50, 90}
//img is a matrix of pixels the initail size is 1 to 451 columns aka "w" width
//and "h" is height 1 to 451 rows
//Crop Left(x) is the starting column and Right(y) is the ending column
//Top() and Bottom() works the same, so after the crop the width is 100-50=50
//and the height is 150-60=90Betreff: Ein JPG-Bild zuschneidenOkay, es sieht so aus, als hätte ich einfach nicht verstanden, wie die Zuschneidefunktion funktioniert. Grundsätzlich müssen Sie die Höhe und Breite des Bildes kennen, das Sie zuschneiden, und beim Zuschneiden mit diesen Werten arbeiten, relativ zur linken und oberen Kante
Links = Anzahl der Pixel, die von der linken Seite entfernt werden sollen
Rechts = „Breite“ (in Pixel) des verbleibenden zu behaltenden Bildes
Oben = Anzahl der Pixel, die vom oberen Rand des Bildes entfernt werden sollen
Unten = „Höhe“ (in Pixel) des verbleibenden zu behaltenden Bildes
img = open("D:\WaferMaps\8PTPCVEB\wafer.jpg", jpg);
imgX = (img << GetSize)[1];
imgY = (img << GetSize)[2];
win1 = newWindow("Original", img);
myTrimBy = 5;
img << crop(left(myTrimBy),right(imgX - myTrimBy), top(myTrimBy), bottom(imgY - myTrimBy));
win2 = newWindow("Cropped", img);
img << savePicture("D:\WaferMaps\8PTPCVEB\waferCropped.jpg", jpg);
Betreff: Ein JPG-Bild zuschneidenDanke für die Antwort Thierry.
Ich hatte genau das auch versucht, aber ohne Erfolg.
Betreff: Ein JPG-Bild zuschneidenHallo,
Ich glaube, Sie haben vergessen, das zugeschnittene Bild einer Variablen zuzuweisen:
img2 = img << crop(left(5),right(5),top(5),bottom(5));
win2 = newWindow("Cropped", img2);
Am besten,
TS
Betreff: Ein JPG-Bild zuschneidenDanke @Craige_Hales
sehr (!) hilfreich