# Last edited on 2025-08-21 19:41:31 by stolfi # 080 analysis of the multispectral images This note describes the application of several image processing and analysis methods applied to the multispectral images of the VMS captured on 2014-08-19. SETUP ln -s ../.. work ln -s work/error_funcs.py ln -s work/process_funcs.py ln -s work/image_funcs.py ln -s ${HOME}/lib/argparser.py ln -s ../../../MultiSpectral ln -s MultiSpectral MS ln -s MultiSpectral/davis/bands_table_funcs.py SOURCE OF THE MULTI-SPECTRAL IMAGES Lisa Fagin Davis, formerly Beinecke staff, posted to GoggleDrive the higher resoltion multi-spectral scans of some pages captured at the Beinecke Library on 2014-08-19. Downloaded and converted the TIFF scans for some pages, and converted them to 16-bit grayscale PNG. See "Multispectral/davis/00-Notebook.txt". One big question is whether the samples in those TIFF files are gamma encoded or not. A color patch scale was included in the images, but we do not know their albedos at the wavelengths in question. The raw images are in "MS/davis/{page}/{band}/full.tif" "MS/davis/{page}/{band}/full.pgm" For each page, the processing extracted small rectangles with selected details: "MS/davis/{page}/{band}/clips/C1.pgm" "MS/davis/{page}/{band}/clips/C2.pgm" ALTERNATE SOURCE User @oshfdk of the Voynich Ninja website set up a webpage displaying the Beinecke multispectral images if pages f70r1 (Aries Darke) and f71r (Aries Light). Some of those images were downloaded to "Multispectral/oshfdk/" CREATING COMPOSITES BY HAND Created a composite of IR, green, and UV clips: ./make_false_color_clips_by_hand.sh 001r1 ./make_false_color_clips_by_hand.sh 008r1 CONVERSION TO FLOAT IMAGES Wrote a script to convert the TIFF images to PNG and to numpy arrays: convert_clips_to_numpy.py 008r1 C1 C2 This script requires a file "MS/davis/{page}/bands.txt" listing the color bands and their attributes: type of illumination (0 = frontal, 1 and 2 = grazing, 3 = from behind), the dominant wavelength, and the max useful sample value (for scaling to [0_1]). SPECTRAL ANALYSIS Manually created black (ignore) and white (take) masks in "pages/008r1/clips/C1/masks": wr/mask.png the written area excluding the leaves. ch/mask.png only the glyphs with a bit of background around them. bg/mask.png a sample of background (bare parch). gb/mask.png a sample of background with ghost leaf from f8v. di/mask.png a sample of the darker glyph strokes (Rt2?). mi/mask.png a sample of the prevalent glyph strokes (Rt1?) li/mask.png a sample of the faintest glyph strokes (original?) gp/mask.png a sample of the green paint from the leaf. yp/mask.png a sample of the light yellow (yel) paint from the stem. The masks "ch.png" and "tx.png" include the outline of the plant's stem but exclude all the painted areas. Wrote three programs to analyze the spectra of pixls in thise areas analyze_clip_mask_pixel_spectra.py 008r1 C1 ch V0 create_eigen_images.py 008r1 V0 C1 wr # ---------------------------------------------------------------------- OLD STUFF Displaying the maxval-adjusted monochrme images: for page in 008r1 ; do set -e for band in ` cd deriv/davis/${page} && ls -d {MB,TX}*_F ` ; do display -title '%d' deriv/davis/${page}/${band}/C1.png done set +e done