## 2 Materials and Methods
### Real-Time DIC Implementation  
The starting point of the DIC algorithm implementation in C++/CUDA was the Matlab code given in [29]. However, this reference code uses the common aerial normalization, i.e., calculating mean and standard deviation over the whole subset area. For robust evaluation on cylindrical surfaces, all image subsets are normalized in a line-wise manner:  
\[\hat{l}(i,j)=\sum_{ \begin{array}{c}i\in\text{ {rows}}\\ j\in\text{ {cols}}\end{array} }\frac{I(i,j)-\bar{I}_{\text{ {row}}}(i)}{\sigma_{\text{{row}}}(i)} \tag{3}\]  
With \(\mathbf{I(i,j)}\), \(\mathbf{\hat{L}(i,j)}\), \(\mathbf{\bar{I}_{\text{{row}}}(i)}\) and \(\mathbf{\sigma_{\text{{row}}}(i)}\) denoting the acquired pixel intensity, normalized intensity, average row intensity, and row standard deviation of either the template or the search image subsets, respectively. The indices \(i\) and \(j\) indicate the rows and columns within the template or search subsets. This normalization compensates the strong intensity drop with increasing angle of incidence which is in particular advantageous on polished cylindrical samples. Therefore, besides a well-adapted camera-lens combination, this normalization is a crucial step towards marker-free DIC measurements on polished surfaces. The normalized cross-correlation coefficient \(C_{k}(\mathbf{u},v)\) is calculated in Fourier space from the normalized and zero-padded template \(\mathbf{\hat{T}_{k}}\) from the reference image and search subsets \(\mathbf{S_{k}}\)  
\[C_{k}(u,v)=FFT^{-1}\Big{\{}FFT\Big{(}\hat{S}_{k}\Big{)}^{*}\text{-}FFT\Big{(} \hat{T}_{k}\Big{)}\Big{\}} \tag{4}\]  
In this equation, \(u\) and \(v\) denote row and column indices within the \(n\)\(x\)\(n\) pixel correlation result and \(k\) quantifies the template and search subsets within reference and search image (see Figure 3); the * denotes the complex conjugate. As it is normalized to the range of \(-1\) to \(1\), values of \(C_{k}(\mathbf{u},\mathbf{v})\) near \(1\)  
Figure 3: Example images from a nickel-base superalloy (Rene 80) specimen: reference image (**a**) with template subsets \(T_{k}\), measurement image (**b**) with search subsets \(S_{k}\), zero-normalized cross-correlation results \(C_{k}\) (**c**), and enlarged 3D graph of the right correlation peak (**d**). The images on the left (full size \(2040\times 256\) pixel) are split at the broken line. Figure 2: Image of the DIC measurement head and of a polished specimen in a servo-hydraulic testing machine. The red crosses mark the template positions \(\overline{r}_{k}\) within the field-of-view. indicate lag positions \((\mathbf{u},\mathbf{v})\) of great similarity between template and search subset, whereas values around zero indicate no similarity. Therefore, the maximum value \(\mathbf{C}_{k,max}(\mathbf{u_{0}},\mathbf{v_{0}})\) marks the position \((\mathbf{u_{0}},\mathbf{v_{0}})\) of the template pattern with the accuracy of one pixel. However, the shape of the peak around the maximum is a direct consequence of the point-spread function of the optical system which means that it can be assumed as a constant pattern sampled by the image sensor [30]. This assumption leads to a subpixel evaluation of the peak position by fitting a polynomial \(\mathbf{p}(\mathbf{u},\mathbf{v})\) to the \(3\times 3\) neighborhood of the maximum correlation at \((\mathbf{u_{0}},\mathbf{v_{0}})\)  
\[p(\mathbf{u},\mathbf{v})=a_{0}+a_{1}\mathbf{u}+a_{2}\mathbf{v}+a_{3}\mathbf{uv}+a_{4}\mathbf{u}^{2}+a_{ 5}\mathbf{v}^{2} \tag{5}\]  
One can also motivate this approach as a two-dimensional Taylor expansion of the peak. The coefficients \(\mathbf{a_{l}}\) correspond to the weighted derivatives and the subpixel-accurate peak position \((\mathbf{u_{max}},\mathbf{v_{max}})\) to the maximum of the fitted polynomial. The difference of the values \((\mathbf{u_{max}},\mathbf{v_{max}})_{\mathbf{k}}(\mathbf{t})\) for the position of template \(\mathbf{k}\) acquired at time \(\mathbf{t}\) yields the displacement with subpixel accuracy.