The raw image datacube without segmentation is Ω = (X, Y, R(λ)). To obtain Φ, (X, Y, R(λ)) is passed through Figure : Automated extraction of chemical composition from vision-segmented perovskite deposits synthesized using a high-throughput liquid deposition system. From left to right: A liquid handling system rasters along the black path, depositing perovskite semiconductors of varying composition by temporally varying the two pump rotational velocities, ω FA and ω MA ; the rotational velocity ω FA governs the proportion of FA in the deposit while the rotational velocity ω MA governs the proportion of MA in the deposit; these time-dependent velocities are obtained directly from the pump microcontrollers and are plotted as the black diagonal lines in the t versus ω subplots; the integrals of the ω's over time for four vision-segmented deposits are shown as the purple and yellow areas beneath the black curves; computing the integral solves for x to estimate the composition FA 1-x MA x PbI 3 . This method is validated by XRD measurement. The right panel illustrates a peak shift of +0.152 • in 2θ from measured deposits with a high expected FA proportion (purple) to measured deposits with high expected MA proportion (yellow), which is the expected result. several filters to find the edges of each feature and then index the features appropriately. In this study, the input image dimensions are (900, 600) pixels and each feature has an area of roughly 1000 pixels. There are approximately 80 features in the image area but their number and location vary from experiment to experiment. Inputting images or features of different sizes may require tuning the kernel sizes, κ, of the filters. Algorithm 1 describes this segmentation process of (X, Y, R(λ)) → ( X, Y , R(λ)). First, the input image is cropped and converted to greyscale, then it is passed through several layers of thresholding and smoothing. By thresholding, eroding, blurring, and then thresholding again, we capture the edges of each feature while removing edge effects. The background is indexed as zeros, hence, all features split by zeros are assigned a unique index using LabelFeatures(•) and Watershed(•) . Once segmented, the features are smoothed, and any improperly segmented aberrations are pruned with the user-selected hyperparameters Θ min , Θ max . Finally, a boolean mask is created for all pixels encoded with non-zero values to output Φ, where each uniquely indexed material deposit is directly mappable to the R(λ) measured for that deposit. Figure (a) shows the unprocessed, raw hypercube of perovskite semiconductor reflectance intensity data, R, and Figure shows the post-processed, segmented hypercube, output by Algorithm 1.