# Last edited on 2023-10-07 09:03:36 by stolfi # Analyisis of images of the Paistos disk. TERMINOLOGY I use "centrad" as adverbs for "towards disk center" and "distad" for "toward disk edge", as in "the smudge centrad of the PLUMED sign". The adjectives are "central" and "distal", as in "the central end of the stroke". Start-of-text or SOT is the presumed radial stroke with five punches that indicates the start of the text on each side. Symbols are denoted by their Godart 1995 names, in upper case, or as E{NN} where {NN} is the Evans number. However two-word names (like PLUMED HEAD)] may be abbreviated to one word (such as PLUMED). Text lines are counted from the edge towards center. Thus line 1 is the first ring of signs adjacent to the edge, line 2 is the ring just centrad of that line, and so on. FETCHING IMAGES On about 2023-08-16, fetched from Wikimedia Commons most images of the Phaistos disk that I could find, at the highets available resolution. Also got images of some related objects. On or before 2023-08-25 downloaded scans of pages 22 and 23 from Arthus Evans's 1909 book, at the start of the section on the Phaistos disk. Also on or before 2023-08-25 downloaded one image from a blog (geoffjward.medium.com by Geoff Ward). On 2023-08-30 downloaded another batch of images from various places on the net. NAMING THE IMAGES Saved images in directories "full" full images of the original disk. "misc" other images, including details, side views, room views, replicas, drawings, related objects, etc. Image file nmes are "{WW}{NNN}{SIDE}.{EXT}" where {NNN} is a number, {SIDE} is a side ("a" or "b"), {EXT} is "jpg" or "png", and {WW} is the source, currently "wc" for "Wikimedia Commons". "ae" for Arthur Evans's book). "at" for Geoff Ward's blog. "nt" for random net sources found with Google. Each image file has a ".txt" companion file with information about the image, including original URL, dates (from the EXIF data), and a description. Images in "full" of the two sides that seem to be taken on the same occasion by the same person have been given the same "{WW}{NNN}"; but this convention is not consistent. CHECKING DUPLICATES BY DATE After fetching, extracted the dates of all images in "images/full": ( cd images/full && \ rm -f .dates ; \ for f in [a-z][a-z][0-9][0-9][0-9][a-z].txt ; do \ echo "=== $f ===" 1>&2 ; \ printf "%s " "${f}" >> .dates ; \ dt=( `cat ${f} | grep -e 'exif:DateTimeOriginal:' | sed -e 's: :_:g' ` ) ; \ echo "dt = [${dt[@]}]" 1>&2 ; \ if [[ ${#dt[@]} -eq 0 ]]; then \ dt=( `cat ${f} | grep -e 'date:modify:' | sed -e 's: :_:g' ` ) ; \ fi ; \ printf "%s\n" "${dt[0]}" >> .dates ; \ done \ ) The following images were found to be just differently cropped versions of the same original image: wc081a.jpg ${wcdir}/5/54/'Diskos_von_Phaistos_02.jpg' wc082a.jpg ${wcdir}/d/d9/'Diskos_von_Phaistos_04.jpg' wc083a.jpg ${wcdir}/e/e9/'Diskos_von_Phaistos_06.jpg' wc081b.jpg ${wcdir}/c/cb/'Diskos_von_Phaistos_01.jpg' wc083b.jpg ${wcdir}/f/f5/'Diskos_von_Phaistos_03.jpg' wc085b.jpg ${wcdir}/6/66/'Diskos_von_Phaistos_05.jpg' Decided to keep only "wc082a.jpg" and "wc083b.jpg" since they were the smallest in each set (but still had enough background). These images also had the same "original" EXIF date as the above, but differed by scaling as well as cropping. wc093a.jpg ${wcdir}/d/d9/'Diskos_von_Phaistos_04a.jpg' wc093b.jpg ${wcdir}/4/40/'Diskos_von_Phaistos_03a.jpg' Since I could not tell which was the original scale, kept them too. The images "nt002b.jpg" "nt003b.jpg" look like similar images of a low-quality plaster cast colorized to highlight the glyphs. Will be discarded. The image "nt013b.jpg" seems to have been taken with grazing illumination from several directions. Or is a plaster cast too, albeit better than "nt003b.jpg". Maybe discard. Ditto for "wc011b.jpg". Maybe discard. The estimated dates of when each photo was taken were saved in the file "images/full/params.txt". CHOOSING REFERENCE IMAGES For each {SIDE} I created a reference image "align/raw/ref{SIDE}.jpg" by slighlty reducing and cropping the image "images/full/wc001{SIDE}.jpg": convert images/full/wc001a.jpg -crop '3184x2960+688+316' align/raw/refa.jpg convert images/full/wc001b.jpg -resize '95%' -crop '3184x2960+719+142' align/raw/refb.jpg ROUGH ALIGNMENT POINTS ON IMAGES For each reference image "align/raw/ref{SIDE}.{EXT}", I prepared a file "align/raw/{IMG}{SIDE}.pts" containing several alignment points, selected by hand. Each line has the format "{TAG} {XREF} {YREF}" where {SIDE} is "a" or "b", {TAG} is "P{K}" for side A, "Q{K}" for side B. The "P" and "Q" points were chosen so as to be easily located visually with "gimp" or "display". The coordinate {YREF} is measured from the top down, as in "display", "ImageMagick", etc. P0-P3 and Q0-Q3 were chosen so as to form an approximate square, as large as possible, in counterclockwise order. For side A, the points are P0 Center of edge (NOT center of central hole) of SHIELD on text line 1, between PLUMED and FLUTE, about +90° from SOT. P1 Center of edge (NOT center of central hole) of SHIELD on text line 1, between WOMAN and PLUMED HEAD, about +165° from SOT. P2 Center of edge (NOT center of central hole) of SHIELD on text line 1, between PLUMED HEAD and CAPTIVE, about -55° from SOT. P3 Center of edge (NOT center of central hole) of SHIELD on text line 1, between PLUMED HEAD and CLUB, about +10° from SOT. For side B, they are Q0 Distad corner of front right (centrad counterclockwise) arm of HIDE, next to SHIP, on first text line from edge, at about -95° from SOT; two pixels to the left (CW) of the deepest point of the groove. Q1 The deep hole on the radial stroke marking the SOT, fifth (last) from edge in the reference figure; two pixel up (centrad) of the center of the totally shadowed part of the hole. Q2 Top left (centrad clockwise) hole representing tooth of CLUB on second text line from edge, adjacent to word separator stroke, about +90° from SOT. Q3 Tip of the totally shadowed part of the groove in the tail (distad end) of HIDE on second text line, about 180° from SOT; one pixel up (centrad) of the apparent tip. Initially also defined points P4 and Q4 which were meant to be used on images that are cropped at bottom so that P3 and Q3 are not visible. But there are no such images in "images/full/" now. For each image "full/{IMG}{SIDE}.{EXT}", prepared a file "align/raw/{IMG}{SIDE}.ipts" containing the coordinates of these same features on that image, located by hand. Each line has the same format above. ADDITIONAL FEATURES FOR AUTO ALIGNMENT Besides de "P" and "Q" features, I also located on the reference image "align/raw/ref{SIDE}.jpg" also some features that are suitable to be refined by automatic local mismatch minimization under different lighting and camera setting conditions. They are "R00", "R01", ... on side A, "S00", "S01", ... on side B. These points too were saved to "align/raw/ref{SIDE}.pts" for the reference image, and are shown in the images "align/raw/ref{SIDE}.xcf". They were NOT entered into "align/raw/{IMG}{SIDE}.ipts", since this data is expected to be computed by feature alignment software. REFERENCE FEATURE MARKS Each "P", "Q", "R", or "S" point in the feature coords file "align/raw/{IMG}{SIDE}.pts", may have additional fields describing a /feature mark/, a geometric shape that may be drawn near or around the feature, on the reference or perspective-rectified images, to help check the correctness of the feature reference point in the original image's ".ipts" file. These additional fields are C {XCTR} {YCTR} {RADIUS} R {XCTR} {YCTR} {XRAD} {YRAD} {ANGLE} X {XCTR} {YCTR} {RADIUS} T {XCTR} {YCTR} {LABEL} The "C" parameters describe a circle with center at {(XCTR,YCTR)}, and radius {RADIUS}. The "R" parameters describe a rectangle with center at {(XCTR,YCTR)}, width {2*XRAD}, height {2*YRAD}, rotated counterclockwise by {ANGLE} degrees. The "X" parameters describe a crosshair mark with with center at {(XCTR,YCTR)} but empty middle, whose arms extend out to distance {RADIUS}. The "T" parameter writes the {LABEL} just to the right of {(XCTR,YCTR)}. The {LABEL} must not contain spaces, and any '_' in it will be replaced by space. It will be displaced to the right to avoid all previous marks. In the first mark, always a crosshair, the center coordinates {(XCTR,YCTR)} are {(XREF,YREF)}, the coords of the reference point itelf. An additional mark, usually a circle, is placed so that it is easier to check the alignment. Specifically: P0-P3 The second mark is a large circle that best seems to follow the edge of the flat part of the SHIELD glyph. Its center {(XCTR,YCTR)} is only a pixel or two away from the nominal coordinates {(XREF,YREF)} of the frature. Q0 The circle follows the edge of the LOWER (distad) tip of the flat plateau inside the upper (centrad)left (CCW) arms of the sign, inside the groove. Q1 The circle follows the sharp edge between the flat ground around the hole and the near-vertical wall of the hole. Q2 The circle center {(XCTR,YCTR)} is the same as the nominal position {(XREF,YREF)} of the feature. Q3 The circle follows the sharp edge between the flat ground around the sign and its steep wall, tangent to the two straight lines that folow that sharp edge along the two sides of the tail. In the case of other features, when there is no explicit mark listed in "refa.pts" or "refb.pts", the default will be a "X" mark at the nominal position of the feature, with appropriate {RADIUS}. All these mark parameters are expressed in the user output coordinate system, including the output user unit. START OF TEXT POINTS In each file "align/raw/ref{SIDE}.pts" I recoded also a reference point with {TAG} = "SOT" located on the edge of the visible disk's face, at the position of the start-of-text mark (the radial line with five dots). The coordinates are: Side "a": 3075 1282 Side "b": 95 1521 On side "a", the "SOT" point almost coincides with the distal end of the SOT line. On side "b", the SOT line bends clockwise just before reaching the edge. Therefore, the "SOT" reference point was chosen by extending the straight part of the SOT line until it meets the edge. In most recent images, that point in fact is obscured by one of the "fingers" of the support. Relative to the approximate center of the "a" face on its reference image, the approximate angular position of its SOT point is +6° from the {+X} axis, and that of the hidden "b" SOT is about -2°. Thus the angular discrepancy between them is about 8°. SHOWING THE FEATURE POINTS ON THE REFEREBCE IMAGES The following generates files "align/raw/ref{SIDE}-with-pts.jpg" by drawing the marks of the features listed in "align/raw/ref{SIDE}.pts" on top of the reference images "align/raw/ref{SIDE}.jpg". Unlike the rectified images in "align/raw/out/" (see MANUAL RECTIFICATION below) the "-with-pts" images are in the same scale as the original, that is, 1 outout user unit is 1 pixel. dir=align/raw OUNIT=1.0 for SIDE in a b; do show_feature_points.sh \ ${dir}/ref${SIDE}.jpg \ ${dir}/ref${SIDE}.pts \ ${dir}/ref${SIDE}-with-pts.jpg \ ${OUNIT} done CORRECTNESS OF THE REFERENCE IMAGES The two reference images may be slightly distorted by perspective (if the optical axis of the camera was not precisely aligned with the disk's center), slightly rotated with respect to each other (if the camera's roll angle was not precisely vertical), and slightly shifted (since they were cropped independently with no explicit attempt to get them aligned). The "TLS" and "TRS" support features (see below) could perhaps be used to get the two reference images calibrated with respect to each other. Unfortunately there does not seem to be a third reference point that is identifiable on both sides. COMPUTING APPROXIMATE IMAGE SIZES Estimating the relative size of the disk face on each full image, from the distances between reference points: compute_image_size_all.sh align/raw > images/full/sizes.txt SUPPORT POINTS I also recorded for each image some reference points related to the support of the disk. Needless to say, the position of these features, relative to the disk, is not the same on all images. In particular, the support is absent in Perrier's photo scanned from Arthur Evans' 1909 book. At least three types of support are seen: Sp1: with four screws and wire ties, spanning quite a bit more than the lower 180° of the disk; Sp2: spanning only the lower 180°, with three pairs of dark (metal?) claws; Sp3: very similar to Sp2, but with translucent plastic "sleeves" over the claws. Sp4: very similar to Sp2 and Sp3, but with translucent plastic "sleeves" over only TWO of the claws (left and right, not bottom). Also, between 2004 and 2008 the disk, as displayed in the Heraklion Museum, was rotated about 135° on the support. For these supports, I recorded by hand the following points in "align/raw/{IMG}{SIDE}.ipts": "TLS" ("top-of-left-support") and "TRS" (top-of-right-support) in each image, defined as the inner corner of the tip of specific arms of the support: respectively the left and right arms from the "a" side, or the right and left arms on the "b" side. These two points are sharply defined and the line between the two "TLS" (or the two "TRS") in space seems to be parallel to the disk's mean normal direction. "Sp{T}{S}{N}" where {T} is type of support ({1..3}) {S} is side ("A" or "B"), and {N} is the claw or screw number ({1..4} for type 1, {1..3} for types 2 and 3). For the type "Sp1" support, these points are the midpoints of the four screws as they disappear behind cut by the disk's rim. For "Sp2" or "Sp3" supports, they are the tips of the claws. Claws and screws are numbered clockwise on side A images and counter-clockwise on side B images, so that "SupA{K}" and "SupB{K}" are practically opposite to each other across the disk, for each {K}. For the record, the reference images have type "Sup3" support. The coordinates of the "TLS" and "TRS" points in the reference images are, respecively Side "a": TLS = 75 1467 TRS = 3110 1448 (distance 3035, angle -0.35°) Side "b": TLS = 3115 1444 TRS = 71 1474 (distance 3044, angle -0.56°) It is not clear whether these discrepancies in distance and angle are due to error in collecting the coordinates from the images, on distortions of the support arms, or actually in different scaling of the two images. Unfortunately there does not seem to be a feature similar to "TLS" and "TRS" near the bottom of the supports. OUTLINE MASK For each {SIDE}, a white-on-black mask "align/raw/ref{SIDE}-mask.png" that selects the visible face of the disk on the "align/raw/ref{SIDE}.jpg" image was created by tracing the outline manually with "gimp" and filling it. The mask has smooth edges and extends a couple of pixels beyond the edge of the disk. The mask is also a layer of "align/raw/ref{SIDE}.xcf". The mask could be used to get a better definition of the geometric center of each face. LOCATING KEY POINTS ON FULL IMAGES The reference points P0-P3 and Q0-Q3 were located manually on each image "images/full/{IMG}{SIDE}.jpg" and saved to "align/raw/{IMG}{SIDE}.ipts". MANUAL RECTIFICATION The script below applies the rectifying perspective map on each image "images/full/{IMG}{SIDE}.jpg" based on the mapping between the reference points P0-P3 and Q0-Q3 in "align/raw/{IMG}{SIDE}.ipts" and the corresponding points of "align/raw/ref{SIDE}.pts". persp_rectify_all.sh align/raw align/raw/out This script applies {persp_rectify.sh} to each image, which in turn uses {pnmprojmap} to do the actual mapping. The perspective-corrected and reduced image is written to "align/raw/out/{IMG}{SIDE}.png". The nominal size of the output image is fixed by {persp_rectify.sh} to 3184 columns and 2960 rows. The input scale factor {IUNIT} of {pnmprojmap} is set to 1, while the {OUNIT} is set to 0.5 pixels, meaning that the perspective-corrected image will be reduced 50% compared to the reference image "align/raw/ref{SIDE}.jpg" (hence 1592 by 1480 pixels. The image is also converted to grayscale. The script also applies the perspective correction to the reference image "align/raw/ref{SIDE}.jpg" itself, and its mask "align/raw/ref{SIDE}-mask.jpg", in the same way. Since the input and output reference points are the same, the result "align/raw/out/ref{SIDE}.png" is just a grayscale copy of "align/raw/ref{SIDE}.jpg" reduced by 50%. The script also extracts from this perpective-corrected image "align/raw/out/{IMG}{SIDE}.png"a fixed-size window centered on each feature point listed in "align/raw/ref{SIDE}.pts". These image clips are saved to "align/raw/out/nhood/{IMG}{SIDE}-{TAG}.png" where {TAG} is the tag ("P0", "Q1", etc.) of the reference point. These image clips are produced even for key points that were not marked in "align/raw/{IMG}{SIDE}.ipts" CHECKING THE REF POINTS VISUALLY The following script considers each {SIDE} ("a","b") and each feature {TAG} that is listed in "align/raw/ref{SIDE}.pts", and calls "display" with the list of all images "align/raw/out/nhood/{IMG}{SIDE}-{TAG}.png", for all {IMG}. check_ref_points_visually.sh \ align/raw \ align/raw/out \ align/raw/out/nhood \ NONE \ ALL ADJUSTING THE KEY POINTS BY HAND By inspecting the clips of the marks P0-P3 and Q0-Q3, I created a file "align/adj/deltas_by_hand.txt" with a line for each image. Each line has the format {IMG}{SIDE} {LET} {DX0} {DY0} {DX1} {DY1} {DX2} {DY2} {DX3} {DY3} where {LET} is "P" or "Q" depending on {SIDE}, {(DX0,DY0)} is the adjustment for P0 or Q0, {(DX1,DY1)} that for P1 or Q1, etc. Adjustments are in pixels of the rectified image. A "+" sign means that the feature is located to the right or downwards of the point shown at the center of the clip, and a "-" sign means to the left or upwards. The "official" feature point being defined as the point of disk's surface that shows at the center of the clip "align/raw/out/nhood/ref{SIDE}-{TAG}.png". That is the point shown in image "align/raw/ref{SIDE}.jpg" at the pixel coordinates labeled {TAG} in "align/raw/ref{SIDE}.pts". The data in the "out_ref_adjs.txt" file can be used to refine the position of the points P0-P3 and Q0-Q3 in the files "align/raw/{IMG}{SIDE}.ipts". Namely, for each "{IMG}{SIDE}" and each {TAG} in P0-P3 or Q0-Q3, I must 1. Convert the adjustment from pixel units to "output user" units, by scaling with the {OUNIT} used in {persp_rectify_all.sh}. 2. Add that scaled adjustment to the (output user) coordinates of point {TAG} in "align/raw/ref{SIDE}.pts". 3. Use the "-unmap" feature of {pnmprojmap} to compute new (input user) coordinates {(XN,YN)} of feature {TAG} in the original image "images/full/{IMG}{SIDE}.jpg" 4. Replace the coordinates of feature {TAG} in "align/raw/{IMG}{SIDE}.ipts" by {XN} and {YN}. This script does it: apply_all_ref_pt_adjustments.sh The adjusted feature coordinates for each image are written to "align/adj/out/{IMG}{SIDE}.ipts" Those are then used in place of "align/raw/{IMG}{SIDE}.ipts" persp_rectify_all.sh align/adj/out align/adj/out check_ref_points_visually.sh \ align/raw \ align/adj/out \ align/adj/out/nhood \ align/raw/out/nhood \ ALL On the whole, the adjustments seem to have improved the alignment of the various rectified images. Replacing the old key feature coordinates in "align/raw/*.ipts" by the adjusted coordinates in "align/adj/out/*.ipts": replace_raw_coords_by_adj_coords.sh Old version of the "align/raw/*.ipts" files were saved to "align/raw/SAVE/2023-09-27". The adjusted files "align/adj/out/*.ipts" are saved to "align/adj/SAVE/2023-09-27". The file "align/adj/deltas_by_hand.txt" is saved there too. Now must repeat sections "APPLYING THE RECTIFYING PERSPECTIVE MAP" and "CHECKING THE REF POINTS VISUALLY". FINDING THE GEOMETRIC CENTER OF EACH FACE For each {SIDE}, the center pixel "CTR" of the perspective-corrected images "align/raw/ref{SIDE}.png" was temporarily assigned by visually determining the bounding box of the visible surface of the disk (excluding the support), and taking its midpoint. The coordinates were Side "a": 1609 1436 Side "b": 1567 1448 The script "persp_rectify_all.sh" was asked to compute the inverse map on this point thus yielding a tentative center of each image "images/full/{IMG}{SIDE}.jpg". These estimated centers were saved two additional columns in the file "images/full/params.txt". GLYPH NAME TABLE Created a file "sign-names.txt" mapping the Evans numbers to the Godart/Unicode names and the occurence couns. Each line has the following fields, separated by " | ": {ENUM} The code "E{NN}" where {NN} is the Evans number. {UNAME} The Unicode name, uppercase, minus "PHAISTOS DISK SIGN". {SNAME} An abbreviated version of {UNAME}. {OCCA} Occurrence count on side A. {OCCB} Occurrence count on side A. {OCCT} Total occurrences on both sides. {UCS} The Unicode character, in UTF-8. The code {NN} goes from 01 t0 49, always with 2 digits. Code 46 is the oblique scribed (not stamped) stroke under some characters, taken to be GLYPH OCCURRENCE TABLES Created files "align/raw/ref{side}-sign-pos.txt" with one line for each sign occurrence on each side. The format for now is {SOC_ID} {WORD_ID} {GLYPH_ID} where {SOC_ID} is the sign occurence identifier, {WORD_ID} is the word identifier, and {GLYPH_ID} identifies the symbol. The symbol identifier {GLYPH_ID} is "E{NN}" where {NN} is the two-digit Evans number, 01 to 45, for the stamped glyphs; plus 46 for the subscripted oblique stroke, 47 for ordinary word separator strokes, 48 for the start-of-text (SOT) markers, and 49 for the unreadable glyph on side A. The word identifier is "A{WW}" or "B{WW}" where {WW} is the two-digit word index from 01. Note that the two occurrences of the same word The sign occurrence identifier {SOC_ID} is "As{KKK}" or "Bs{KKK}" for stamped glyphs where {KKK} is three-digit sign occurrence index, consecutive starting form 001 to about 120 on each side. These include the unreadable glyph on side A ({GLYPH_ID} "E49"). The {SOC_ID} for each occurrence of the oblique stroke ({GLYPH_ID} E46) is "Ap{PP}" or "Bp{PP}" where {PP} is the occurrence index of that stroke, starting from {01} on each side. Finally the {SOC_ID} is "Ar{SS}" or "Br{SS}" for the vertical (radial) strokes that delimit words ({GLYPH_ID} "E47" and "E48"), where {SS} is the stroke index, consecutive starting from "00" on each side. The strokes "Ar00" and "Br00" are the five-punched SOT marks. GLYPH POSITION TABLES Collected by hand coordinates of key points of each occurence of each sign on each {side} ("a" or "b") of the disk. These are saved in the file "glyphs/raw/E{NN}.raw where {NN} is the 2-digit Evans number. The format of each data line in this file is {SOC_ID} {X1} {Y1} {X2} {Y2} where {SOC_ID} is the sign occurence identifier, starting with "A" or "B" to indicate the disk's side. The points {(X1,Y1)} and {(X2,Y2)} are user output coordinates on {refa.jpg} or {refb.jpg} of two reference features on that occurrence. The reference features were chosen for each glyph number {NN} as described in "glyphs/raw/glyph-key-points.txt". The coordinates {(X1,Y1)} and {(X2,Y2)} were obtained by opening the reference image "ref{side}.jpg" with {gimp}, and either directly reading the pixel coordinates of the feature from the mouse coord display, or by fitting a circle of fixed size to the feature and entering the coordinates displayed in the circle selection box. In this second case the actual coordinates of the features are {(X1+r1,Y1+r1)} and {(X2+r2,Y2+r2)} where {r1} and {r2} are the radii of the fitted circles. These radii were saved in each "E{NN}.raw" file by statements "r1 = {r1}" and "r2 = {r2}" before all coordinate lines. In the first case, the radius {r1} and/or {r2} is specified as zero. The hand-edited files "glyphs/raw/E{NN}.raw" were then converted to actual coordinates and mark specs and saved to "glyphs/raw/out/E{NN}.okys". Each data line of this file has the format {SOC_ID} E{NN} {TYPE1} {XC1} {YC1} {RAD1} {TYPE2} {XC2} {YC2} {RAD2} There the mark type {TYPE1} is "C" (circle) if {r1} was nonzero, else "X" (crosshair). The coordinates {XC1,YC1} are {X1+r1,Y1+r1}. The mark's radius {RAD1} is {r1} if {r1} was nonzero, else it is some fixed number. The conversion of the "E{NN}.raw" files to "E{NN}.okys" is accomplished by these commands: last_glyph=49 ( for ct in `count 1 ${last_glyph} 1 2 0` ; do sg="E${ct}" process_glyph_feature_coords.sh ${sg} done ) EXTRACTING GLYPH IMAGES Once occurrence feature coordinates have been obtained, we can extract and rotate glyph images in a standard orientatin for each symbol. glyph_extract_all.sh >>== STOPPED HERE ==>> ESTIMATING THE LIGHT FIELD Also created in "align/ldir/ This should have been fetched: https://upload.wikimedia.org/wikipedia/commons/3/32/%CE%94%CE%AF%CF%83%CE%BA%CE%BF%CF%82_%CF%84%CE%B7%CF%82_%CE%A6%CE%B1%CE%B9%CF%83%CF%84%CE%BF%CF%8D_%CF%80%CE%BB%CE%B5%CF%85%CF%81%CE%AC_B_6381.JPG for img in ` cd images/full && ls *.{jpg,png} ` ; do img_file="images/full/${img}" pts_file="align/raw/${img/.*/.ipts}" display -title '%f' "${img_file}" & emacsclient "${pts_file}" done