Commit 1d55fd6e by Turnhout, M.C. van

expand on log(I+1) with text and figures

parent c950aa82
 % !TeX root = colourdecon.tex %\begin{savequote} %The computable'' numbers may be described briefly as the real numbers whose expressions as a decimal are calculable by finite means.\qauthor{Alan Turing \cite{Turing1937}} %\end{savequote} \begin{savequote} \dots\ then shalt thou count to three, no more, no less. Three shall be the number thou shalt count, and the number of the counting shall be three. Four shalt thou not count, neither count thou two, excepting that thou then proceed to three.\qauthor{Monty Python \cite{Python1975}} \end{savequote} \chapter{Linear algebra behind colour deconvolution}\label{algebra} \section{Introduction} Ruifrok and Johnston propose a method to do colour deconvolution for subtractive colour mixing in \cite{Ruifrok2001}. They use the law of Bouguer-Lambert-Beer \cite{Beer1852,Perrin1948} for a linear relationship between the amount dye' and the amount of absorbed light', and neglect such effects as reflection and scattering. They use the law of Bouguer-Lambert-Beer \cite{Beer1852,Perrin1948} for a linear relationship between the amount dye' and the amount of absorbed light', and neglect such effects as reflection and scattering. Deconvolution is then performed in absorption-space'. Ruifrok and Johnston only sketch an (analytical) outline of the procedure and do no discuss the practical implementation, or how to reconstruct' images with the estimated dye amounts.\\ \noindent A ImageJ plugin (based on original code made available by A.C.\ Ruifrok) was released in 2004 by Gabriel Landini \cite{Landini2004,Landini2020}. Things such as pure dye identification and image reconstructing have been implemented in this (Java) plugin. ... ... @@ -73,7 +77,7 @@ The total absorption $\col{A}$ for our $N$ discrete wavelengths for $D$ differen Which simply says that the total amount of light absorbed at a certain wavelength is the sum of the amount absorbed of the first dye at that wavelength plus the amount absorbed of the second dye at that wavelength plus the amount absorbed of the third dye at that wavelength plus \dots\\ Equation \ref{sumdyedis} can be written in matrix form as: Equation \ref{sumdyedis} can be written in matrix form as (see equation \ref{sumdyesRGB} for an example): \begin{align} \mat{K} & = \begin{bmatrix} \col{\hat{k}}_1 & \col{\hat{k}}_ 2 & \dots & \col{\hat{k}}_D\end{bmatrix},\; \col{a} = \begin{bmatrix} \hat{a}_1 \\ \hat{a}_ 2\\ \vdots \\ \hat{a}_D\end{bmatrix}\\ \mat{K}\col{\hat{a}} & = \col{A} \label{sumdyesmat} ... ... @@ -90,11 +94,11 @@ and the inverse $\mat{K}^{-1}$ only exists for square matrices $\mat{K}$. Not to \section{Colour deconvolution in RGB} \subsection{Deconvolution in absorption-space'} \subsection{Easy in absorption-space'} When we use three wavelengths and label them, say, $R$, $G$, and $B$ and (thus) use three dyes labelled 1, 2 and 3, equation \ref{sumdyesmat} comes out as: \begin{bmatrix} \hat{k}_{R_1} & \hat{k}_{R_2} & k_{R_3} \\ \hat{k}_{G_1} & \hat{k}_{G_2} & \hat{k}_{G_3} \\ \hat{k}_{B_1} & \hat{k}_{B_2} & \hat{k}_{B_3}\end{bmatrix}\cdot\begin{bmatrix}\hat{a}_1\\\hat{a}_2\\\hat{a}_3 \end{bmatrix} = \begin{bmatrix}\hat{a}_1 \hat{k}_{R_1} + \hat{a}_2\hat{k}_{R_2} +\hat{a}_3 \hat{k}_{R_3} \\\hat{a}_1 \hat{k}_{G_1} + \hat{a}_2\hat{k}_{G_2} +\hat{a}_3 \hat{k}_{G_3} \\ \hat{a}_1 \hat{k}_{B_1} + \hat{a}_2\hat{k}_{B_2} +\hat{a}_3 \hat{k}_{B_3} \end{bmatrix}= \begin{bmatrix}A_R\\A_G\\A_B \end{bmatrix} \begin{bmatrix} \hat{k}_{R_1} & \hat{k}_{R_2} & k_{R_3} \\ \hat{k}_{G_1} & \hat{k}_{G_2} & \hat{k}_{G_3} \\ \hat{k}_{B_1} & \hat{k}_{B_2} & \hat{k}_{B_3}\end{bmatrix}\cdot\begin{bmatrix}\hat{a}_1\\\hat{a}_2\\\hat{a}_3 \end{bmatrix} = \begin{bmatrix}\hat{a}_1 \hat{k}_{R_1} + \hat{a}_2\hat{k}_{R_2} +\hat{a}_3 \hat{k}_{R_3} \\\hat{a}_1 \hat{k}_{G_1} + \hat{a}_2\hat{k}_{G_2} +\hat{a}_3 \hat{k}_{G_3} \\ \hat{a}_1 \hat{k}_{B_1} + \hat{a}_2\hat{k}_{B_2} +\hat{a}_3 \hat{k}_{B_3} \end{bmatrix}= \begin{bmatrix}A_R\\A_G\\A_B \end{bmatrix} \label{sumdyesRGB} and equation \ref{sumdyesinv} comes out as: ... ... @@ -116,19 +120,50 @@ When the maximum possible pixel intensity is $I_\mathrm{max}$ ($2^n-1$ for a $n$ which would make pixel intensity from absorption \col{I}_p = I_\mathrm{max} \col{T} = I_\mathrm{max} \mathrm{e}^{-\col{\hat{k}}\hat{a}} \col{I}_p = I_\mathrm{max} \col{T} = I_\mathrm{max} \mathrm{e}^{-\col{\hat{k}}\hat{a}} \label{Ipixel} and absorption from pixel intensity: \col{A}= -\ln \left(\frac{\col{I}_p}{I_\mathrm{max}} \right) = \ln I_\mathrm{max} -\ln \col{I}_p =\col{\hat{k}}\hat{a} \col{A}= -\ln \left(\frac{\col{I}_p}{I_\mathrm{max}} \right) = \ln I_\mathrm{max} -\ln \col{I}_p =\col{\hat{k}}\hat{a} \label{Apixel} ~\\ \subsection{Except that pixel intensities can be zero} Except that pixel values can be zero, and the (any) log of zero is $-\infty$ which makes numerical computations hard. So we add 1 to the pixel intensities to avoid that we have to store $\pm\infty$ in the computer: \col{A}= -\ln \left(\frac{\col{I}_p + 1}{I_\mathrm{max}} \right) = \ln I_\mathrm{max} - \ln \left(\col{I}_p+ 1\right) \approx \col{\hat{k}}\hat{a} \col{\hat{A}}= -\ln \left(\frac{\col{I}_p + 1}{I_\mathrm{max}+1} \right) = \ln \left(I_\mathrm{max}+1\right) - \ln \left(\col{I}_p+ 1\right) \approx \col{\hat{k}}\hat{a} \label{Apixela} But \ No newline at end of file Note that we also add 1 to $I_\mathrm{max}$: the differences for small $I_p$ are negligible and this ensures that we find an absorption coefficient of precisely zero when $I_p = I_\mathrm{max}$ (instead of e.g.\ 0.004 for an 8-bits image). Further note that this is now an \textsl{approximation} of the exact optical density $\col{\hat{k}}\hat{a}$ from equation \ref{Apixel}. For an 8-bits image, the approximation is off by about 10\,\% for very small pixel values, decreasing (fast) to 3\,\% for a pixel value of 10, and (eventually) 0\,\% for a (maximum) pixel value of 255; and the approximation improves much for increasing dynamic range in the images (figure \ref{Apixelcompare}). \begin{figure}[h] \tiny \subfloat[\label{notlogzeroA}]{% \def\svgwidth{0.47\linewidth}\includesvg{../pics/notlogzeroA}}\hfill \subfloat[\label{notlogzerodA}]{% \def\svgwidth{0.47\linewidth}\includesvg{../pics/notlogzerodA}}\\ \caption{Comparison of the exact and approximated absorbance. With \textbf{(a)} exact absorbance (equation \ref{Apixel}, solid blue) and approximated absorbance (equation \ref{Apixela}, dashed red) as a function of pixel value $I_p$ for an 8-bits image ($I_\mathrm{max} = 255$); and \textbf{(b)} the relative error as a function of pixel value $I_p$ for 8-bits (blue), 12-bits ($I_\mathrm{max} = 4095$, red) and 16-bits images ($I_\mathrm{max} = 65\,535$, yellow). \label{Apixelcompare}} \end{figure} Finally note that we introduced $\col{\hat{A}}$ to distinguish this approximated absorbance from equation \ref{Apixel}. So that we will now also write \hat{\col{I}}_p = I_\mathrm{max} \hat{\col{T}} = I_\mathrm{max} \mathrm{e}^{-\col{\hat{A}}} \label{Ipixela} for pixel values and transmission values that are calculated from the approximated absorbance $\col{\hat{A}}$. Since $\col{\hat{A}}$ is an underestimation of $\col{A}$ (figure \ref{Apixela}), $\hat{\col{T}}$ is an overestimation of $\col{T}$ in the conversion $\col{T} \rightarrow \hat{\col{A}} \rightarrow \hat{\col{T}}$ ($\text{RGB} \rightarrow \text{absorbance} \rightarrow \text{RGB}$). The conversion $\col{T} \rightarrow \col{A} \rightarrow\col{T}$ is reversible and exact (figure \ref{notlogzeroT}). \begin{figure}[h] \tiny \subfloat[\label{notlogzeroT}]{% \def\svgwidth{0.47\linewidth}\includesvg{../pics/notlogzeroT}}\hfill \subfloat[\label{notlogzerodT}]{% \def\svgwidth{0.47\linewidth}\includesvg{../pics/notlogzerodT}}\\ \caption{Comparison of the transmission (pixel intensities) calculated with the exact and approximated absorbance. With \textbf{(a)} transmission with exact absorbance (equation \ref{Ipixel}, solid blue) and transmission with the approximated absorbance (equation \ref{Ipixela}, dashed red) as a function of pixel value $I_p$ for an 8-bits image ($I_\mathrm{max} = 255$); and \textbf{(b)} the relative error as a function of pixel value $I_p$ for 8-bits (blue), 12-bits ($I_\mathrm{max} = 4095$, red) and 16-bits images ($I_\mathrm{max} = 65\,535$, yellow). \label{Ipixelcompare}} \end{figure} The 100\,\% error in figure \ref{notlogzerodT} may look worse than it is: it means that the original pixel value of 1 has become 2, and the error of about 10\,\% for a pixel value of 10 means that the converted pixel value is about 11. The dynamic range of the camera does affect this error, but not to any appreciable amount. \section{And the number of the counting shall be three} Three shall be the number thou shalt count, and the number of the counting shall be three. \ No newline at end of file
 ... ... @@ -66,4 +66,30 @@ and the public domain program NIH image.}, timestamp = {2020-08-16}, } @Misc{Landini2004, author = {Landini, Gabriel and Rueden, Curtis and Schindelin, Johannes and Hiner, Mark and Pavie, Benjamin}, title = {Colour Deconvolution}, howpublished = {\href{https://imagej.net/Colour_Deconvolution}{https://imagej.net/Colour\_Deconvolution}}, year = {2004}, note = {Source code available at \href{https://github.com/fiji/Colour_Deconvolution}{https://github.com/fiji/Colour\_Deconvolution}}, timestamp = {2020-09-26}, } @Misc{Python1975, author = {Python, Monty}, title = {Monty {P}ython and the {H}oly {G}rail}, year = {1975}, imdb = {tt0071853}, publisher = {Python (Monty) Pictures}, timestamp = {2020-09-26}, } @Misc{Landini2020, author = {Landini, G.}, title = {Novel context-based segmentation algorithms for intelligent microscopy}, howpublished = {\href{https://blog.bham.ac.uk/intellimic/g-landini-software/colour-deconvolution/}{https://blog.bham.ac.uk/intellimic/g-landini-software/colour-deconvolution/}}, year = {2020}, timestamp = {2020-09-26}, } @Comment{jabref-meta: databaseType:bibtex;}
 ... ... @@ -28,7 +28,7 @@ % graphics and color \usepackage[pdftex]{graphicx} \graphicspath{{pics/}} \graphicspath{{../pics/}} \usepackage{svgimport} \usepackage{xcolor} \definecolor{ispurple}{RGB}{128,0,128} ... ...
 clear all; close all Ip = 0:255; % pixel intensities A(2, :) = -log( (Ip+1)/256 ); A(1, :) = -log( (Ip)/255 ); figure('defaultlinelinewidth', 2) semilogx(Ip, A(1, :), Ip, A(2, :), '--') xlabel('pixel intensity\,[-]') ylabel('absorption\,[-]') grid on h = legend('$\col{A} = -\ln(I_p/255)$', '$\col{\hat{A}} = -\ln( (I_p+1)/256)$'); set(h, 'box', 'off') figure('defaultlinelinewidth', 2) loglog(Ip, 255*exp(-A(1, :)), Ip, 255*exp(-A(2, :)), '--') ylim([1 1000]) xlabel('pixel intensity\,[-]') ylabel('transmission\,[-]') grid on h = legend('$\col{T}$', '$\col{\hat{T}}$', 'location', 'northwest'); set(h, 'box', 'off') DR = [8 12 16]; % dynamic range in bits IP = zeros(1, 2^max(DR))/0; % allocate with NaNs dA = zeros(numel(DR), 2^max(DR))/0; % allocate with NaNs dT = dA; for d = 1:numel(DR) n = DR(d); ip = 0:2^n-1; % pixel intensities A = zeros(2, numel(ip)); A(2, :) = -log( (ip+1)/2^n ); A(1, :) = -log( (ip)/(2^n-1) ); IP(d, 1:numel(ip)) = ip; dA(d, 1:numel(ip)) = A(2, :)./A(1, :); dT(d, 1:numel(ip)) = exp(-A(2, :))./exp(-A(1, :)); end figure('defaultlinelinewidth', 2) semilogx(IP', dA') ylim([.85 1]) % set(gca, 'ytick', 1:0.05:1.15) xlabel('pixel intensity\,[-]') ylabel('$\col{\hat{A}} / \col{A}$\,[-]') grid on h = legend('8-bits', '12-bits', '16-bits'); set(h, 'box', 'off') figure('defaultlinelinewidth', 2) semilogx(IP', dT') % ylim([.85 1]) % set(gca, 'ytick', 1:0.05:1.15) xlabel('pixel intensity\,[-]') ylabel('$\col{\hat{T}} / \col{T}$\,[-]') grid on h = legend('8-bits', '12-bits', '16-bits'); set(h, 'box', 'off')
 %% Creator: Inkscape inkscape 0.92.5, www.inkscape.org %% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010 %% Accompanies image file 'notlogzeroA.pdf' (pdf, eps, ps) %% %% To include the image in your LaTeX document, write %% \input{.pdf_tex} %% instead of %% \includegraphics{.pdf} %% To scale the image, write %% \def\svgwidth{} %% \input{.pdf_tex} %% instead of %% \includegraphics[width=]{.pdf} %% %% Images with a different path to the parent latex file can %% be accessed with the import' package (which may need to be %% installed) using %% \usepackage{import} %% in the preamble, and then including the image with %% \import{}{.pdf_tex} %% Alternatively, one can specify %% \graphicspath{{/}} %% %% For more information, please see info/svg-inkscape on CTAN: %% http://tug.ctan.org/tex-archive/info/svg-inkscape %% \begingroup% \makeatletter% \providecommand\color[2][]{% \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}% \renewcommand\color[2][]{}% }% \providecommand\transparent[1]{% \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}% \renewcommand\transparent[1]{}% }% \providecommand\rotatebox[2]{#2}% \newcommand*\fsize{\dimexpr\f@size pt\relax}% \newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}% \ifx\svgwidth\undefined% \setlength{\unitlength}{486.98342126bp}% \ifx\svgscale\undefined% \relax% \else% \setlength{\unitlength}{\unitlength * \real{\svgscale}}% \fi% \else% \setlength{\unitlength}{\svgwidth}% \fi% \global\let\svgwidth\undefined% \global\let\svgscale\undefined% \makeatother% \begin{picture}(1,0.804282)% \lineheight{1}% \setlength\tabcolsep{0pt}% \put(0,0){\includegraphics[width=\unitlength,page=1]{notlogzeroA.pdf}}% \put(0.03906396,0.03490879){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{c}1\end{tabular}}}}% \put(0.34461851,0.03490879){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{c}10\end{tabular}}}}% \put(0.65017306,0.03490879){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{c}100\end{tabular}}}}% \put(0.95572761,0.03490879){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{c}1000\end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=2]{notlogzeroA.pdf}}% \put(0.03289434,0.06674149){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 0 \end{tabular}}}}% \put(0.03289434,0.18723841){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 1 \end{tabular}}}}% \put(0.03289434,0.30773532){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 2 \end{tabular}}}}% \put(0.03289434,0.42823224){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 3 \end{tabular}}}}% \put(0.03289434,0.54872915){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 4 \end{tabular}}}}% \put(0.03289434,0.66922607){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 5 \end{tabular}}}}% \put(0.03289434,0.78972298){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 6 \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=3]{notlogzeroA.pdf}}% \put(0.43373858,0){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{c} pixel intensity\,[-] \end{tabular}}}}% \put(0.00262705,0.36868196){\rotatebox{90}{\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{c} absorption\,[-] \end{tabular}}}}}% \put(0,0){\includegraphics[width=\unitlength,page=4]{notlogzeroA.pdf}}% \put(0.6937844,0.73849619){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $\col{A} = -\ln(I_p/255)$ \end{tabular}}}}% \put(0.6937844,0.69553477){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $\col{\hat{A}} = -\ln( (I_p+1)/256 )$ \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=5]{notlogzeroA.pdf}}% \end{picture}% \endgroup%
This diff is collapsed.
 %% Creator: Inkscape inkscape 0.92.5, www.inkscape.org %% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010 %% Accompanies image file 'notlogzeroT.pdf' (pdf, eps, ps) %% %% To include the image in your LaTeX document, write %% \input{.pdf_tex} %% instead of %% \includegraphics{.pdf} %% To scale the image, write %% \def\svgwidth{} %% \input{.pdf_tex} %% instead of %% \includegraphics[width=]{.pdf} %% %% Images with a different path to the parent latex file can %% be accessed with the import' package (which may need to be %% installed) using %% \usepackage{import} %% in the preamble, and then including the image with %% \import{}{.pdf_tex} %% Alternatively, one can specify %% \graphicspath{{/}} %% %% For more information, please see info/svg-inkscape on CTAN: %% http://tug.ctan.org/tex-archive/info/svg-inkscape %% \begingroup% \makeatletter% \providecommand\color[2][]{% \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}% \renewcommand\color[2][]{}% }% \providecommand\transparent[1]{% \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}% \renewcommand\transparent[1]{}% }% \providecommand\rotatebox[2]{#2}% \newcommand*\fsize{\dimexpr\f@size pt\relax}% \newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}% \ifx\svgwidth\undefined% \setlength{\unitlength}{495.98342126bp}% \ifx\svgscale\undefined% \relax% \else% \setlength{\unitlength}{\unitlength * \real{\svgscale}}% \fi% \else% \setlength{\unitlength}{\svgwidth}% \fi% \global\let\svgwidth\undefined% \global\let\svgscale\undefined% \makeatother% \begin{picture}(1,0.79287731)% \lineheight{1}% \setlength\tabcolsep{0pt}% \put(0,0){\includegraphics[width=\unitlength,page=1]{notlogzeroT.pdf}}% \put(0.05650088,0.03427534){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^0$ \end{tabular}}}}% \put(0.35651091,0.03427534){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^1$ \end{tabular}}}}% \put(0.65652094,0.03427534){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^2$ \end{tabular}}}}% \put(0.95653096,0.03427534){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^3$ \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=2]{notlogzeroT.pdf}}% \put(0.02028125,0.06149802){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^0$ \end{tabular}}}}% \put(0.02028125,0.29811884){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^1$ \end{tabular}}}}% \put(0.02028125,0.53473965){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^2$ \end{tabular}}}}% \put(0.02028125,0.77136046){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^3$ \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=3]{notlogzeroT.pdf}}% \put(0.44401383,0){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} pixel intensity\,[-] \end{tabular}}}}% \put(0.02020027,0.33291905){\rotatebox{90}{\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} transmission\,[-] \end{tabular}}}}}% \put(0,0){\includegraphics[width=\unitlength,page=4]{notlogzeroT.pdf}}% \put(0.1492318,0.73736557){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $\col{T}$ \end{tabular}}}}% \put(0.1492318,0.70762647){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $\col{\hat{T}}$ \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=5]{notlogzeroT.pdf}}% \end{picture}% \endgroup%
 %% Creator: Inkscape inkscape 0.92.5, www.inkscape.org %% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010 %% Accompanies image file 'notlogzerodA.pdf' (pdf, eps, ps) %% %% To include the image in your LaTeX document, write %% \input{.pdf_tex} %% instead of %% \includegraphics{.pdf} %% To scale the image, write %% \def\svgwidth{} %% \input{.pdf_tex} %% instead of %% \includegraphics[width=]{.pdf} %% %% Images with a different path to the parent latex file can %% be accessed with the import' package (which may need to be %% installed) using %% \usepackage{import} %% in the preamble, and then including the image with %% \import{}{.pdf_tex} %% Alternatively, one can specify %% \graphicspath{{/}} %% %% For more information, please see info/svg-inkscape on CTAN: %% http://tug.ctan.org/tex-archive/info/svg-inkscape %% \begingroup% \makeatletter% \providecommand\color[2][]{% \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}% \renewcommand\color[2][]{}% }% \providecommand\transparent[1]{% \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}% \renewcommand\transparent[1]{}% }% \providecommand\rotatebox[2]{#2}% \newcommand*\fsize{\dimexpr\f@size pt\relax}% \newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}% \ifx\svgwidth\undefined% \setlength{\unitlength}{509.93445084bp}% \ifx\svgscale\undefined% \relax% \else% \setlength{\unitlength}{\unitlength * \real{\svgscale}}% \fi% \else% \setlength{\unitlength}{\svgwidth}% \fi% \global\let\svgwidth\undefined% \global\let\svgscale\undefined% \makeatother% \begin{picture}(1,0.76808302)% \lineheight{1}% \setlength\tabcolsep{0pt}% \put(0,0){\includegraphics[width=\unitlength,page=1]{notlogzerodA.pdf}}% \put(0.08231352,0.03333762){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^0$ \end{tabular}}}}% \put(0.25739485,0.03333762){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^1$ \end{tabular}}}}% \put(0.43247618,0.03333762){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^2$ \end{tabular}}}}% \put(0.6075575,0.03333762){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^3$ \end{tabular}}}}% \put(0.78263883,0.03333762){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^4$ \end{tabular}}}}% \put(0.95772021,0.03333762){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^5$ \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=2]{notlogzerodA.pdf}}% \put(0.03818138,0.10976705){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 0.86 \end{tabular}}}}% \put(0.03818138,0.20182594){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 0.88 \end{tabular}}}}% \put(0.0499476,0.29388483){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 0.9 \end{tabular}}}}% \put(0.03818138,0.38594372){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 0.92 \end{tabular}}}}% \put(0.03818138,0.47800261){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 0.94 \end{tabular}}}}% \put(0.03818138,0.5700615){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 0.96 \end{tabular}}}}% \put(0.03818138,0.66212038){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 0.98 \end{tabular}}}}% \put(0.07642159,0.75417927){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 1 \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=3]{notlogzerodA.pdf}}% \put(0.45922468,-0){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} pixel intensity\,[-] \end{tabular}}}}% \put(0.01660998,0.37660133){\rotatebox{90}{\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}$\col{\hat{A}} / \col{A}$\,[-]\end{tabular}}}}}% \put(0,0){\includegraphics[width=\unitlength,page=4]{notlogzerodA.pdf}}% \put(0.85876234,0.71918144){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 8-bits \end{tabular}}}}% \put(0.85876234,0.69227308){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 12-bits \end{tabular}}}}% \put(0.85876234,0.66536472){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 16-bits \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=5]{notlogzerodA.pdf}}% \end{picture}% \endgroup%
 %% Creator: Inkscape inkscape 0.92.5, www.inkscape.org %% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010 %% Accompanies image file 'notlogzerodT.pdf' (pdf, eps, ps) %% %% To include the image in your LaTeX document, write %% \input{.pdf_tex} %% instead of %% \includegraphics{.pdf} %% To scale the image, write %% \def\svgwidth{} %% \input{.pdf_tex} %% instead of %% \includegraphics[width=]{.pdf} %% %% Images with a different path to the parent latex file can %% be accessed with the import' package (which may need to be %% installed) using %% \usepackage{import} %% in the preamble, and then including the image with %% \import{}{.pdf_tex} %% Alternatively, one can specify %% \graphicspath{{/}} %% %% For more information, please see info/svg-inkscape on CTAN: %% http://tug.ctan.org/tex-archive/info/svg-inkscape %% \begingroup% \makeatletter% \providecommand\color[2][]{% \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}% \renewcommand\color[2][]{}% }% \providecommand\transparent[1]{% \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}% \renewcommand\transparent[1]{}% }% \providecommand\rotatebox[2]{#2}% \newcommand*\fsize{\dimexpr\f@size pt\relax}% \newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}% \ifx\svgwidth\undefined% \setlength{\unitlength}{495.43440126bp}% \ifx\svgscale\undefined% \relax% \else% \setlength{\unitlength}{\unitlength * \real{\svgscale}}% \fi% \else% \setlength{\unitlength}{\svgwidth}% \fi% \global\let\svgwidth\undefined% \global\let\svgscale\undefined% \makeatother% \begin{picture}(1,0.79056278)% \lineheight{1}% \setlength\tabcolsep{0pt}% \put(0,0){\includegraphics[width=\unitlength,page=1]{notlogzerodT.pdf}}% \put(0.05545533,0.03431332){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^0$ \end{tabular}}}}% \put(0.23566083,0.03431332){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^1$ \end{tabular}}}}% \put(0.41586632,0.03431332){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^2$ \end{tabular}}}}% \put(0.59607181,0.03431332){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^3$ \end{tabular}}}}% \put(0.7762773,0.03431332){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^4$ \end{tabular}}}}% \put(0.95648279,0.03431332){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $10^5$ \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=2]{notlogzerodT.pdf}}% \put(0.03939096,0.06560303){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 1 \end{tabular}}}}% \put(0.02122508,0.20773285){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 1.2 \end{tabular}}}}% \put(0.02122508,0.34986267){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 1.4 \end{tabular}}}}% \put(0.02122508,0.49199248){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 1.6 \end{tabular}}}}% \put(0.02122508,0.6341223){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 1.8 \end{tabular}}}}% \put(0.03939096,0.77625211){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 2 \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=3]{notlogzerodT.pdf}}% \put(0.44339771,0){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} pixel intensity\,[-] \end{tabular}}}}% \put(0.02113297,0.38505212){\rotatebox{90}{\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} $\col{\hat{T}}/ \col{T}$\,[-] \end{tabular}}}}}% \put(0,0){\includegraphics[width=\unitlength,page=4]{notlogzerodT.pdf}}% \put(0.88793285,0.74022999){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 8-bits \end{tabular}}}}% \put(0.88793285,0.71253409){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 12-bits \end{tabular}}}}% \put(0.88793285,0.68483819){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l} 16-bits \end{tabular}}}}% \put(0,0){\includegraphics[width=\unitlength,page=5]{notlogzerodT.pdf}}% \end{picture}% \endgroup%