[VC] Intro to Computer Vision

This commit is contained in:
janishutz committed 2026-09-25 19:21:28 +02:00
1 parent 01f455e991
commit 199f43caa3
9 files changed
+87

No files matched your search

Binary file not shown.
@@ -0,0 +1,32 @@
\shortdefinition[Image] $f : \R^n \rightarrow S$,
for greyscale $n = 2$, $S = \R^+$,
in digital form: $I : \{ 1, \ldots, X \} \times \{ 1, \ldots, Y \} \rightarrow S$
\shortremark Pinhole size affects blur, \bi{Lens Camera} as sol.
\shortremark Charge Coupled Device (CCD) sensor reads line-by-line (rolling shutter), then each line pixel-by-pixel
\shortdefinition[Sensor array] is an array of \textit{photosites} (bucket of el. charge $\propto$ light intensity), then read via ADC.
\shortremark[Blooming] Caused by photosite saturation
\shortdefinition[Dark Current] CCDs give non-zero output in darkness, fluctuates randomly
\shortdefinition[CMOS Sensor] Each photo sensor has own amplifier, {\color{red} more noise, lower sensitivity}, {\color{ForestGreen} ``smart'' pixels bc. CMOS}
\shortdefinition[Sampling] Repeated measurement on certain interval, \bi{Reconstruction} is inverse.
Issues: \bi{undersampling} (lose information), \bi{oversampling} (too large files).
\shortdefinition[Nyquist Frequency] highest signal freq that can be accurately captured, half of sampling rate
\shortdefinition[Quantization] Lossy discretization of analogue value, simple versions have $k = 2^b$ values for $b$ bits
\shortremark Quantization ``on'' $y$-axis, Sampling ``along'' $x$-axis
\shortdefinition[Res.] Geometric: PPI; Radiometric: Bits/Pixel
\shortdefinition[Signal-Noise-R.] (SNR) Image quality index: $s = F \div \sigma$, with $F = \frac{1}{XY}\sum_{x = 1}^{X} \sum_{y = 1}^{Y} f(x, y)$.
\shortdefinition[Add. Gaussian Noise] $I(x, y) = f(x, y) + c$, with $c \sim \cN(0, \sigma^2)$, s.t. $p(c) = \frac{1}{\sqrt{2\pi \sigma^2}}e^{-\frac{c^2}{2 \sigma^2}}$
\shortdefinition[Poisson Noise] $p(k) = \frac{\lambda^k e^{-\lambda}}{k!}$
@@ -0,0 +1,31 @@
\shortdefinition[Moving Average] New image $G$ where $G[x, y]$ is average of surrounding pixels and $F[x, y]$
\shortdefinition[Linear Shift-Invariant Filter.] New pixels lin. comb. of neighbours, \textit{shift-invariant} = doing same for all pixels.
Good for: smoothing, noise reduction, sharpening
\shortdefinition[Linear Operation] $L$ lin. if $L[\alpha I_1 + \beta I_2] = \alpha L[I_1] + \beta L[I_2]$, $I'_j = \sum_{i = 1}^{N} \alpha_{ij} I_i$ for $j \in \{ 1, \ldots, N \}$
\shortdefinition[Linear Filtering] $I'(x, y) = \sum_{(i, j) \in N(x, y)} K(i, j) I(x + i, y + j)$ with $I$ the input image and $K$ the \bi{kernel} of operation,
$N(x, y)$ neighbourhood function for pixel $(x, y)$. Shift-Invariant if $K$ doesn't depend on $(x, y)$ (i.e. same weights everywhere)
\shortdefinition[Kernel] Typically matrix, center of matrix is $(0, 0)$
\shortdefinition[Correlation] $\displaystyle I'(x, y) = \sum_{j = -k}^{k} \sum_{i = -k}^{k} K(i, j) I(x + i, y + j)$
\shortdefinition[Conv.] $\displaystyle I'(x, y) = \sum_{j = -k}^{k} \sum_{i = -k}^{k} K(-i, -j) I(x + i, y + j)$
Gen.: $g(x) = (f * h)(x) = \int_{-\8}^{\8} f(\tau)h(x - \tau) \dx \tau$, $h(\tau)$ kernel
\shortremark If $K(i, j) = K(-i, -j)$, then Convolution = Corr.
\shortremark Convolution is linear: $[(af + bg) * h](x) = a(f * h)(x) + b(g * h)(x)$, commutative: $(f * h)(x) = (h * f)(x)$,
associative: $(f * g) * h = f * (g * h)$; Diff: $\diff{x} (f * h)(x) = f * h'$
% TODO: Consider what examples to put here for linear filters
\shortremark At edge of image, extrapolate, options: clip filter (black), wrap around, copy edge, reflect across edge
\shortdefinition[Gaussian Kernel] $G_\sigma = \frac{1}{2 \pi \sigma^2}e^{\frac{x^2 + y^2}{2\sigma^2}}$.
The smooting amount depends on $\sigma$ and window size.
\shortremark $g(x, y) = g(x) g(y)$, with $g(x) = \frac{1}{\sqrt{2\pi \sigma^2}}\exp\left( -\frac{x^2}{2\sigma^2} \right)$.
Efficient implementation: First rows 1D, then cols 1D
Whitespace-only changes.
@@ -0,0 +1,10 @@
\section{Computer Vision}
\subsection{Digital Image}
\input{parts/00_computer-vision/00_digital-image.tex}
\subsection{Filtering}
\input{parts/00_computer-vision/01_filtering.tex}
\subsection{Convolution}
\input{parts/00_computer-vision/02_convolution/00_basics.tex}
% \input{parts/00_computer-vision/}
Whitespace-only changes.
Whitespace-only changes.
Binary file not shown.
+14
View File
@@ -1,17 +1,31 @@
\documentclass{article}
\PassOptionsToPackage{skip=0pt}{parskip}
\input{../../../helpers.tex}
\usepackage{lmodern}
\setFontType{sans}
\renewcommand{\numberingpreset}{off}
\renewcommand{\definitionShortNamingEN}{Def}
\renewcommand{\remarkShortNamingEN}{Rem}
\renewcommand{\lemmaShortNamingEN}{Lem}
\renewcommand{\theoremShortNamingEN}{Thm}
\renewcommand{\descriptorNameDisplay}[1]{\textbf{#1}}
\setupCheatSheet{Visual Computing}
\begin{document}
\startDocument
\noverticalspacing
\input{parts/00_computer-vision/main.tex}
\input{parts/01_computer-graphics/main.tex}
\end{document}