The following warnings occurred:
Warning [2] Undefined variable $can_link - Line: 6 - File: showthread.php(1658) : eval()'d code PHP 8.5.12 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/showthread.php(1658) : eval()'d code 6 errorHandler->error_callback
/showthread.php 1658 eval




Processed 116v/17r Multispectral
#9
I'm not really trying to argue with anyone over these, don't use them if you don't like them.

I was using the 1r and 8r multispectral images to help double check my page alignments and text boxes for the other alignment work I was doing and thought i would try to process these while i was working with the multispectral data. Compared to the published versions these seemed much clearer. 

The key was recognizing that different parts of the text are visible under different wavelengths, specifically the pox leber and the end of the 17r, so these are composites that use different processing for those areas.
You are not allowed to view links. Register or Login to view. uses just the 365 nm UV and 870 nm IR captures. 

f116v’s grayscale detail comes from 21 captures. Its color comes specifically from three UV-illuminated captures through red, green, and blue filters. 

Here are processing walkthrough images. 

   

   


The exact notes re in the code block

Code:
FINAL SHARED MARGINALIA IMAGES - PROCESSING RECORD Prepared 2026-11-04. The notes describe the exported files, not the retired trial images. Source images: The Lazarus Project and The Chester F. Carlson Center for Imaging Science at RIT. Beinecke Rare Book & Manuscript Library, MS 408. Processing shown here is a separate exploratory reprocessing. Original release: https://manuscriptroadtrip.wordpress.com/2024/09/08/multispectral-imaging-and-the-voynich-manuscript/ Illumination bands and optical camera filters are different things. MB450RB etc. encode the nominal illumination wavelength. Filter-wheel suffixes R25/G58/B47/O22 mean red/green/blue/orange; UVP means UV pass and UVB means UV block. The captured file codes are retained below; exact transmission curves were not measured here. Filter terminology reference (Lazarus Project authors): https://heller.uccs.edu/sites/default/files/inline-files/Making_Light_Work_Manuscripts_and_Multis.pdf COMMON PREPARATION Use the released 16-bit _F.tif pixels as supplied. No new Spectralon or flat-field calibration was applied. Rotate f17r clockwise 90 degrees and f116v counterclockwise 90 degrees. Crop coordinates are upright pixels: f17r (1000,980)-(4300,1380); f116v (2400,590)-(6050,1510). Register by saved subpixel translations to band 1. Bilinear resampling once, reflected image borders; no dewarping, rotation fitting, letter templates or inpainting. For each registered band: J = ln(max(I,1)) - ln(max(GaussianBlur(max(I,1), sigma=45 native pixels),1)). The Gaussian estimates broad background. Unsmoothed means no final median blur, not absence of a Gaussian background estimate. f17r-marginalia-uv-ir.png Only capture 7 (Voynich_17r+MB365UV_007_F.tif, UV365) and 11 (Voynich_17r+MB870IR_011_F.tif, IR870) supply the processed pixels. Band 1 supplies the coordinate reference only. Fit the IR/UV covariance in crop rectangle (300,190)-(2250,270). beta = Cov(J11,J7)/(1.03*Var(J11)) = 2.824462890625. IR training mean = 0.0008721816120669246 S = J7 - beta*(J11 - IR training mean). Apply this identical formula everywhere. Stretch S using the 1st/99th percentiles from rectangle (1690,45)-(2120,195): [-0.4623613554239273, 0.19868828743696212]. Clip to [0,1], multiply by 255 and round to 8-bit. Export: 3300 x 400 grayscale PNG; 1,046,662 bytes. Optimized lossless encoding, pixel-identical to the processed image. No resizing. f116v-marginalia-grayscale.png Uses captures 1-11 and 13-22 (21 captures). Capture 12, MB940IR, was rejected by the registration check. Standardize each J by its recorded crop mean and standard deviation: Z=(J-mu)/sd. These statistics were sampled every third pixel in both crop axes. Fit signal covariance in rectangles (100,40)-(1550,185) and (180,280)-(3380,850), sampling every second pixel in both axes. Noise covariance uses horizontal adjacent-pixel differences divided by sqrt(2), flattened and sampled every third difference. This includes texture and stroke edges: it is approximate noise, not calibrated sensor noise. Solve C*v = lambda*(N + ridge*I)*v, with ridge = 0.1*trace(N)/21 = 0.0030837112486527506. Select the eigenvector with the largest eigenvalue; orient its sign to dark visible marks. S=sum(v_b*Z_b), the same vector over the full crop. Stretch the 0.5th/99.5th percentiles from the fitting rectangles: [-41.7496629428886, 10.651094460059111]. Clip and round to 8-bit. Coefficients below multiply standardized channels. Their magnitude is not a percentage contribution: channels are correlated and some coefficients are negative. Capture | recorded code | coefficient v | mean mu | standard deviation sd 01 | MB450RB | -0.40123389398641607 | -0.030934782698750496 | 0.24075385928153992 02 | MB470LB | -0.466772792816873 | -0.0273868627846241 | 0.22821111977100372 03 | MB505CN | -0.4169843883126215 | -0.02330409735441208 | 0.21211296319961548 04 | MB535GN | -0.17501679194204545 | -0.020401451736688614 | 0.19907282292842865 05 | MB570AM | 0.7211247912064062 | -0.014523405581712723 | 0.16990114748477936 06 | MB625RD | 1.2261049179911327 | -0.011578815057873726 | 0.1505759358406067 07 | MB365UV | 0.06679484892500705 | -0.03539511561393738 | 0.2502836287021637 08 | MB700IR | 0.9694143149610635 | -0.0069826822727918625 | 0.1124449148774147 09 | MB735IR | 0.6722502501491484 | -0.0055714016780257225 | 0.09956010431051254 10 | MB780IR | 0.09534763785765055 | -0.0042648836970329285 | 0.08557050675153732 11 | MB870IR | -0.7137994560362623 | -0.0032104067504405975 | 0.07183916866779327 13 | WBUVR25 | 0.2648120055003522 | -0.03113832324743271 | 0.241638645529747 14 | WBRBR25 | 0.9461587244697228 | -0.027460074052214622 | 0.22214029729366302 15 | WBUVG58 | 0.33944875790904966 | -0.05060529336333275 | 0.32504764199256897 16 | WBRBG58 | -0.42043416066753564 | -0.03575313091278076 | 0.2683892250061035 17 | WBUVB47 | 1.5364007763142844 | -0.052557043731212616 | 0.30795878171920776 18 | WBRBB47 | 2.7186676183012546 | -0.027277830988168716 | 0.21998879313468933 19 | WBUVUVP | -0.030499106325626277 | -0.014894123189151287 | 0.15382885932922363 20 | WBUVO22 | 0.5555066082091724 | -0.03653222694993019 | 0.2655847668647766 21 | WBRBO22 | 0.2021404550443559 | -0.0311378575861454 | 0.24000751972198486 22 | WBUVUVB | 0.48008406118723423 | -0.041301969438791275 | 0.2817792296409607 f116v-marginalia-uv-colour.jpg Use the grayscale field above for display luma. For UV chroma, assign locally normalized captures 13 WBUVR25 -> R, 15 WBUVG58 -> G, 17 WBUVB47 -> B. These are UV-illuminated captures through three different optical filters. Each UV channel uses its own 0.5th/99.5th percentile stretch within the same fit rectangles. R/G/B ranges: [[-1.3137560510635375, 0.36494593620300314], [-1.8364973163604736, 0.4203295326232912], [-1.4626196479797364, 0.372614221572876]] Display luma weights = (0.2126,0.7152,0.0722). Subtract UV luma from each UV RGB pixel to obtain chroma. Subtract a constant chroma centre estimated from the brighter 40% of the fitted grayscale samples, then multiply chroma by 1.35. Recorded centre: [-0.02251860499382019, 0.006493031978607178, 0.0019894542638212442] Add this chroma to the grayscale luma, reducing chroma per pixel only as needed to keep all RGB values within [0,1]. Quantization changes display luma by at most 0.499 of one 8-bit level. This is not physical radiometric luminance. Export: 3650 x 920 progressive JPEG, Pillow quality 94, 4:4:4 chroma (no chroma subsampling), optimized. 1,880,707 bytes. Lossy compression; no resizing. Grayscale export: 3650 x 920 PNG, 1,636,546 bytes, lossless and pixel-identical to the generated grayscale image. INTERPRETATION No final median filter, sharpening, generative enhancement or reconstructed letters was applied to these exports. Registration and local background estimation do modify pixels. The processing can amplify or alter texture, stains and show-through; it does not establish the wording or different ink chemistries. The walkthrough sheets use scaled examples for presentation. They are not replacements for the native-resolution exported images.
Reply


Messages In This Thread
RE: Processed 116v/17r Multispectral - by npcompl33t - 2 hours ago

Forum Jump:


Users browsing this thread: 1 Guest(s)