A real scanline as a Toeplitz product
The notebook takes 32 real pixels from one row of the photograph and convolves them in full mode with the length-3 kernel [1, 0, -1]. The same result comes from one matrix product:
C = convmtx_full_1d(kernel_1d, len(scanline)) # (34, 32)
np.allclose(C @ scanline,
np.convolve(scanline, kernel_1d, 'full')) # True
C has one column per input pixel and one row per output position: 32 + 3 − 1 = 34 rows. Each row is one shifted copy of the local convolution rule; each column is the output that one input pixel causes.
Nothing magical happened when C appeared. Only the representation changed: convolution is a structured linear operator, the same few numbers reused in every row.