Important: Please read the installation page for details about how to install the toolboxes. $\newcommand{\dotp}[2]{\langle #1, #2 \rangle}$ $\newcommand{\enscond}[2]{\lbrace #1, #2 \rbrace}$ $\newcommand{\pd}[2]{ \frac{ \partial #1}{\partial #2} }$ $\newcommand{\umin}[1]{\underset{#1}{\min}\;}$ $\newcommand{\umax}[1]{\underset{#1}{\max}\;}$ $\newcommand{\umin}[1]{\underset{#1}{\min}\;}$ $\newcommand{\uargmin}[1]{\underset{#1}{argmin}\;}$ $\newcommand{\norm}[1]{\|#1\|}$ $\newcommand{\abs}[1]{\left|#1\right|}$ $\newcommand{\choice}[1]{ \left\{ \begin{array}{l} #1 \end{array} \right. }$ $\newcommand{\pa}[1]{\left(#1\right)}$ $\newcommand{\diag}[1]{{diag}\left( #1 \right)}$ $\newcommand{\qandq}{\quad\text{and}\quad}$ $\newcommand{\qwhereq}{\quad\text{where}\quad}$ $\newcommand{\qifq}{ \quad \text{if} \quad }$ $\newcommand{\qarrq}{ \quad \Longrightarrow \quad }$ $\newcommand{\ZZ}{\mathbb{Z}}$ $\newcommand{\CC}{\mathbb{C}}$ $\newcommand{\RR}{\mathbb{R}}$ $\newcommand{\EE}{\mathbb{E}}$ $\newcommand{\Zz}{\mathcal{Z}}$ $\newcommand{\Ww}{\mathcal{W}}$ $\newcommand{\Vv}{\mathcal{V}}$ $\newcommand{\Nn}{\mathcal{N}}$ $\newcommand{\NN}{\mathcal{N}}$ $\newcommand{\Hh}{\mathcal{H}}$ $\newcommand{\Bb}{\mathcal{B}}$ $\newcommand{\Ee}{\mathcal{E}}$ $\newcommand{\Cc}{\mathcal{C}}$ $\newcommand{\Gg}{\mathcal{G}}$ $\newcommand{\Ss}{\mathcal{S}}$ $\newcommand{\Pp}{\mathcal{P}}$ $\newcommand{\Ff}{\mathcal{F}}$ $\newcommand{\Xx}{\mathcal{X}}$ $\newcommand{\Mm}{\mathcal{M}}$ $\newcommand{\Ii}{\mathcal{I}}$ $\newcommand{\Dd}{\mathcal{D}}$ $\newcommand{\Ll}{\mathcal{L}}$ $\newcommand{\Tt}{\mathcal{T}}$ $\newcommand{\si}{\sigma}$ $\newcommand{\al}{\alpha}$ $\newcommand{\la}{\lambda}$ $\newcommand{\ga}{\gamma}$ $\newcommand{\Ga}{\Gamma}$ $\newcommand{\La}{\Lambda}$ $\newcommand{\si}{\sigma}$ $\newcommand{\Si}{\Sigma}$ $\newcommand{\be}{\beta}$ $\newcommand{\de}{\delta}$ $\newcommand{\De}{\Delta}$ $\newcommand{\phi}{\varphi}$ $\newcommand{\th}{\theta}$ $\newcommand{\om}{\omega}$ $\newcommand{\Om}{\Omega}$
This numerical tour explores non-linear local filters that proceeds by ordering the pixels in a neighboorhood and selecting a given ranked entry.
using PyPlot
using NtToolBox
We consider an image $f : [0,1]^2 \rightarrow \RR$.
For any $\beta \in [0,1]$, we define the rank filter $\phi_\be^B$ of order $\beta$ associated to a set $B$ to be $$ g = \phi_\beta^B(f) \qwhereq g(x) = \inf \: \enscond{t \in \RR}{ \mu( f^{-1}(]-\infty,t]) \cap x+B ) \geq \mu(B)/2 }. $$ where $\mu$ is the Lebesgue measure on $\RR$.
One usually assumes that $B$ is the ball of radius $\epsilon>0$ $$ B = B_\epsilon = \enscond{x}{\norm{x} \leq \epsilon}. $$
When $\be=0$ (resp. $\be=1$, resp. $\be=1/2$), then $g(x)$ is the miniminimum (resp. maximum, resp. median) value of $f$ in a small neighboorhood of radius $\epsilon$ $$ \phi_0^{B_\epsilon}(f)(x) = \umin{\norm{y-x} \leq \epsilon} f(y), $$ $$ \phi_{1/2}^{B_\epsilon}(f)(x) = \umax{\norm{y-x} \leq \epsilon} f(y), $$ $$ \phi_{1}^{B_\epsilon}(f)(x) = \underset{\norm{y-x} \leq \epsilon}{\text{median}} f(y). $$
The operator $\phi_\beta^B$ is contrast-invariant, meaning that it computes with increasing functions $ \psi : \RR \rightarrow \RR $ $$ \phi_\beta^B \circ \psi = \psi \circ \phi_\beta^B. $$ The axiomatic study of contrast invariant operator was initiated in the comunity of mathematical morphology, see Matheron75, Tukey77, Serra82.
Note also that there exist generalization of rank filters (and in particular the median filter) to vector valued images $ f : [0,1]^2 \rightarrow \RR^d$. Since the notion of rank does not exists anymore, one has to rely on variational caracteriation of the median, see for instance CasSapChu00.
The medial filtering is the most popular rank filter. It is particularly efficient to remove impulse noise, see for instance Piterbarg84, FanHall94. See also AriasDon99 for a theoritical analysis of median filtering and of a two-stage iterated version.
We apply rank filters to discretized images by interpreting them as piecewise constant functions.
Size $N = n \times n$ of the image.
n = 256;
256
We load an image $f_0 \in \RR^N$.
f0 = load_image("NtToolBox/src/data/hibiscus.png", n);
256×256 Array{Float32,2}: 0.116279 0.110802 0.113704 0.134063 … 0.0287548 0.0287359 0.0314583 0.118994 0.105394 0.126063 0.153145 0.0137308 0.0191786 0.0328152 0.121933 0.131637 0.167055 0.1561 0.0191221 0.0219491 0.0383352 0.1686 0.187318 0.194206 0.179032 0.0218771 0.0327673 0.0437247 0.202441 0.179545 0.188899 0.180755 0.0342584 0.0396646 0.0410583 0.236876 0.231387 0.243987 0.195669 … 0.0397783 0.0451862 0.045026 0.242166 0.26833 0.392237 0.219388 0.0492727 0.0520715 0.0412221 0.227555 0.239195 0.222395 0.223745 0.0614059 0.0561919 0.0450853 0.174463 0.192817 0.173714 0.161738 0.0588799 0.0560296 0.0411872 0.240959 0.214167 0.198041 0.176431 0.06423 0.0561998 0.0491571 0.233736 0.268875 0.323605 0.390379 … 0.0613594 0.0601386 0.0492048 0.469764 0.440609 0.320349 0.217411 0.0590014 0.0561119 0.0479389 0.217896 0.224526 0.240435 0.225365 0.0605422 0.0628551 0.0480219 ⋮ ⋱ ⋮ 0.247533 0.309003 0.308757 0.305036 0.135376 0.126861 0.126032 0.246182 0.279635 0.295631 0.297313 … 0.136632 0.129989 0.127163 0.240817 0.24315 0.283953 0.312362 0.133973 0.131301 0.120581 0.243502 0.235563 0.261751 0.3049 0.128674 0.1311 0.119053 0.243583 0.225477 0.2399 0.238397 0.131327 0.117945 0.127137 0.227261 0.233908 0.228406 0.247246 0.104366 0.112181 0.119152 0.196036 0.223394 0.217576 0.224995 … 0.0903733 0.0930875 0.101424 0.21693 0.190604 0.220216 0.217304 0.0862589 0.084944 0.0930124 0.476838 0.167249 0.212108 0.21071 0.0807355 0.0833831 0.0848607 0.534911 0.40117 0.175342 0.191631 0.0684402 0.071227 0.087462 0.481751 0.479992 0.236952 0.164247 0.0669885 0.0697431 0.0725492 0.342149 0.467888 0.411812 0.143802 … 0.0684046 0.0711055 0.0766073
Display $f_0$.
figure(figsize = (5,5))
imageplot(f0)
Noise level $\si$.
sigma = .04;
0.04
Generate a noisy image $f=f_0+\epsilon$ where $\epsilon \times \Nn(0,\si^2\text{Id}_N)$.
using Distributions
f = f0 .+ sigma.*rand(Normal(), n, n);
256×256 Array{Float64,2}: 0.114772 0.105344 0.107063 0.121441 … 0.0657353 0.0233756 0.110311 0.108213 0.197087 0.0939345 0.0509361 0.0141683 0.09125 0.194106 0.198424 0.156751 0.0495803 0.00415511 0.157416 0.156526 0.187292 0.149025 0.0368 0.0151333 0.147951 0.188546 0.225104 0.240929 0.076205 -0.0366769 0.232034 0.218108 0.228177 0.212642 … 0.0446797 0.00278841 0.226353 0.228391 0.389259 0.262028 -0.0398128 0.0412949 0.166553 0.175345 0.238151 0.157617 0.0681098 0.0232659 0.139443 0.233554 0.200415 0.187086 0.0425438 0.0079569 0.210662 0.2297 0.215615 0.15383 0.0146813 -0.0568391 0.13838 0.229396 0.374239 0.38232 … -0.0396493 0.0903054 0.509495 0.489149 0.379413 0.261747 0.0585931 0.0405592 0.175538 0.194461 0.301568 0.239828 0.118492 -0.00022444 ⋮ ⋱ ⋮ 0.270615 0.252229 0.315756 0.355736 0.255458 0.138058 0.224241 0.319554 0.276628 0.297281 … 0.178452 0.150221 0.271247 0.235519 0.291007 0.366537 0.119766 0.0274382 0.248166 0.243644 0.276523 0.358626 0.148094 0.139359 0.269712 0.300629 0.237094 0.260269 0.119064 0.090374 0.271568 0.294264 0.232658 0.221302 0.0825405 0.0694068 0.147831 0.203258 0.249593 0.174058 … 0.137787 0.0774287 0.166618 0.255677 0.273366 0.257261 0.0280057 0.0944554 0.481993 0.195508 0.2474 0.188708 0.0188767 0.118661 0.630043 0.374081 0.204699 0.166117 0.0871116 0.151308 0.412443 0.524932 0.200204 0.150742 0.0780533 0.0703177 0.364963 0.431397 0.468698 0.163196 … 0.0556309 0.0483685
Display $f$.
figure(figsize = (5,5))
imageplot(clamP(f))
For simplicity, we consider the case where the set $B$ is a square of $w_1 \times w_2$ pixels. where we denote $w$ to be the half width of the patches, and $w_1=2w+1$ the full width.
w = 3
w1 = 2*w + 1;
7
We define the patch extraction operator $$ p = p_x(f) \in \RR^{w_1 \times w_1} \qwhereq \forall -w \leq s_1,s_2 \leq w, \quad p(s) = f(x+s). $$
We now define the function $\Pi(f) = (p_x(f))_x $ that extracts all possible patches.
We set up large $(n,n,w_1,w_1)$ matrices to index the the X and Y position of the pixel to extract.
include("NtToolBox/src/ndgrid.jl")
(X, Y) = meshgrid(1 : n, 1 : n)
(dX, dY) = meshgrid(-w : w, -w : w)
dX = reshape(dX, (1, 1, w1, w1))
dY = reshape(dY, (1, 1, w1, w1))
X = repeat(X, inner = [1, 1, w1, w1]) + repeat(dX, inner = [n, n, 1, 1])
Y = repeat(Y, inner = [1, 1, w1, w1]) + repeat(dY, inner = [n, n, 1, 1]);
256×256×7×7 Array{Int64,4}: [:, :, 1, 1] = -2 -2 -2 -2 -2 -2 -2 -2 … -2 -2 -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ⋮ ⋮ ⋱ ⋮ ⋮ 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 243 243 243 243 243 243 243 243 … 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 [:, :, 2, 1] = -1 -1 -1 -1 -1 -1 -1 -1 … -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ⋮ ⋮ ⋱ ⋮ ⋮ 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 … 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 [:, :, 3, 1] = 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 … 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 … 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 ⋮ ⋮ ⋱ ⋮ ⋮ 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 … 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 … 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 … 255 255 255 255 255 255 255 [:, :, 4, 1] = 1 1 1 1 1 1 1 1 … 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 … 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 … 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ⋮ ⋮ ⋱ ⋮ ⋮ 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 … 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 … 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 … 256 256 256 256 256 256 256 [:, :, 5, 1] = 2 2 2 2 2 2 2 2 … 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 … 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 … 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 ⋮ ⋮ ⋱ ⋮ ⋮ 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 … 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 … 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 … 257 257 257 257 257 257 257 [:, :, 6, 1] = 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 … 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ⋮ ⋮ ⋱ ⋮ ⋮ 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 … 258 258 258 258 258 258 258 [:, :, 7, 1] = 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 … 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 ⋮ ⋮ ⋱ ⋮ ⋮ 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 259 259 259 259 259 259 259 259 … 259 259 259 259 259 259 259 [:, :, 1, 2] = -2 -2 -2 -2 -2 -2 -2 -2 … -2 -2 -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ⋮ ⋮ ⋱ ⋮ ⋮ 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 243 243 243 243 243 243 243 243 … 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 [:, :, 2, 2] = -1 -1 -1 -1 -1 -1 -1 -1 … -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ⋮ ⋮ ⋱ ⋮ ⋮ 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 … 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 [:, :, 3, 2] = 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 … 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 … 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 ⋮ ⋮ ⋱ ⋮ ⋮ 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 … 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 … 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 … 255 255 255 255 255 255 255 [:, :, 4, 2] = 1 1 1 1 1 1 1 1 … 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 … 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 … 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ⋮ ⋮ ⋱ ⋮ ⋮ 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 … 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 … 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 … 256 256 256 256 256 256 256 [:, :, 5, 2] = 2 2 2 2 2 2 2 2 … 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 … 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 … 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 ⋮ ⋮ ⋱ ⋮ ⋮ 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 … 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 … 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 … 257 257 257 257 257 257 257 [:, :, 6, 2] = 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 … 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ⋮ ⋮ ⋱ ⋮ ⋮ 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 … 258 258 258 258 258 258 258 [:, :, 7, 2] = 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 … 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 ⋮ ⋮ ⋱ ⋮ ⋮ 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 259 259 259 259 259 259 259 259 … 259 259 259 259 259 259 259 [:, :, 1, 3] = -2 -2 -2 -2 -2 -2 -2 -2 … -2 -2 -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ⋮ ⋮ ⋱ ⋮ ⋮ 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 243 243 243 243 243 243 243 243 … 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 [:, :, 2, 3] = -1 -1 -1 -1 -1 -1 -1 -1 … -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ⋮ ⋮ ⋱ ⋮ ⋮ 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 … 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 [:, :, 3, 3] = 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 … 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 … 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 ⋮ ⋮ ⋱ ⋮ ⋮ 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 … 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 … 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 … 255 255 255 255 255 255 255 [:, :, 4, 3] = 1 1 1 1 1 1 1 1 … 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 … 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 … 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ⋮ ⋮ ⋱ ⋮ ⋮ 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 … 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 … 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 … 256 256 256 256 256 256 256 [:, :, 5, 3] = 2 2 2 2 2 2 2 2 … 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 … 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 … 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 ⋮ ⋮ ⋱ ⋮ ⋮ 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 … 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 … 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 … 257 257 257 257 257 257 257 [:, :, 6, 3] = 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 … 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ⋮ ⋮ ⋱ ⋮ ⋮ 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 … 258 258 258 258 258 258 258 [:, :, 7, 3] = 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 … 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 ⋮ ⋮ ⋱ ⋮ ⋮ 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 259 259 259 259 259 259 259 259 … 259 259 259 259 259 259 259 [:, :, 1, 4] = -2 -2 -2 -2 -2 -2 -2 -2 … -2 -2 -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ⋮ ⋮ ⋱ ⋮ ⋮ 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 243 243 243 243 243 243 243 243 … 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 [:, :, 2, 4] = -1 -1 -1 -1 -1 -1 -1 -1 … -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ⋮ ⋮ ⋱ ⋮ ⋮ 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 … 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 [:, :, 3, 4] = 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 … 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 … 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 ⋮ ⋮ ⋱ ⋮ ⋮ 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 … 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 … 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 … 255 255 255 255 255 255 255 [:, :, 4, 4] = 1 1 1 1 1 1 1 1 … 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 … 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 … 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ⋮ ⋮ ⋱ ⋮ ⋮ 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 … 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 … 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 … 256 256 256 256 256 256 256 [:, :, 5, 4] = 2 2 2 2 2 2 2 2 … 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 … 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 … 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 ⋮ ⋮ ⋱ ⋮ ⋮ 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 … 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 … 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 … 257 257 257 257 257 257 257 [:, :, 6, 4] = 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 … 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ⋮ ⋮ ⋱ ⋮ ⋮ 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 … 258 258 258 258 258 258 258 [:, :, 7, 4] = 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 … 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 ⋮ ⋮ ⋱ ⋮ ⋮ 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 259 259 259 259 259 259 259 259 … 259 259 259 259 259 259 259 [:, :, 1, 5] = -2 -2 -2 -2 -2 -2 -2 -2 … -2 -2 -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ⋮ ⋮ ⋱ ⋮ ⋮ 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 243 243 243 243 243 243 243 243 … 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 [:, :, 2, 5] = -1 -1 -1 -1 -1 -1 -1 -1 … -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ⋮ ⋮ ⋱ ⋮ ⋮ 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 … 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 [:, :, 3, 5] = 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 … 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 … 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 ⋮ ⋮ ⋱ ⋮ ⋮ 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 … 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 … 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 … 255 255 255 255 255 255 255 [:, :, 4, 5] = 1 1 1 1 1 1 1 1 … 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 … 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 … 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ⋮ ⋮ ⋱ ⋮ ⋮ 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 … 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 … 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 … 256 256 256 256 256 256 256 [:, :, 5, 5] = 2 2 2 2 2 2 2 2 … 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 … 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 … 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 ⋮ ⋮ ⋱ ⋮ ⋮ 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 … 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 … 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 … 257 257 257 257 257 257 257 [:, :, 6, 5] = 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 … 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ⋮ ⋮ ⋱ ⋮ ⋮ 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 … 258 258 258 258 258 258 258 [:, :, 7, 5] = 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 … 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 ⋮ ⋮ ⋱ ⋮ ⋮ 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 259 259 259 259 259 259 259 259 … 259 259 259 259 259 259 259 [:, :, 1, 6] = -2 -2 -2 -2 -2 -2 -2 -2 … -2 -2 -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ⋮ ⋮ ⋱ ⋮ ⋮ 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 243 243 243 243 243 243 243 243 … 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 [:, :, 2, 6] = -1 -1 -1 -1 -1 -1 -1 -1 … -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ⋮ ⋮ ⋱ ⋮ ⋮ 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 … 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 [:, :, 3, 6] = 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 … 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 … 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 ⋮ ⋮ ⋱ ⋮ ⋮ 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 … 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 … 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 … 255 255 255 255 255 255 255 [:, :, 4, 6] = 1 1 1 1 1 1 1 1 … 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 … 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 … 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ⋮ ⋮ ⋱ ⋮ ⋮ 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 … 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 … 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 … 256 256 256 256 256 256 256 [:, :, 5, 6] = 2 2 2 2 2 2 2 2 … 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 … 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 … 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 ⋮ ⋮ ⋱ ⋮ ⋮ 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 … 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 … 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 … 257 257 257 257 257 257 257 [:, :, 6, 6] = 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 … 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ⋮ ⋮ ⋱ ⋮ ⋮ 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 … 258 258 258 258 258 258 258 [:, :, 7, 6] = 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 … 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 ⋮ ⋮ ⋱ ⋮ ⋮ 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 259 259 259 259 259 259 259 259 … 259 259 259 259 259 259 259 [:, :, 1, 7] = -2 -2 -2 -2 -2 -2 -2 -2 … -2 -2 -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ⋮ ⋮ ⋱ ⋮ ⋮ 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 243 243 243 243 243 243 243 243 … 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 [:, :, 2, 7] = -1 -1 -1 -1 -1 -1 -1 -1 … -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ⋮ ⋮ ⋱ ⋮ ⋮ 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 244 244 244 244 244 244 244 244 … 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 [:, :, 3, 7] = 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 … 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 … 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 ⋮ ⋮ ⋱ ⋮ ⋮ 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 245 245 245 245 245 245 245 245 … 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 … 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 … 255 255 255 255 255 255 255 [:, :, 4, 7] = 1 1 1 1 1 1 1 1 … 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 … 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 … 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ⋮ ⋮ ⋱ ⋮ ⋮ 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 246 246 246 246 246 246 246 246 … 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 … 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 … 256 256 256 256 256 256 256 [:, :, 5, 7] = 2 2 2 2 2 2 2 2 … 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 … 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 … 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 ⋮ ⋮ ⋱ ⋮ ⋮ 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 247 247 247 247 247 247 247 247 … 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 … 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 … 257 257 257 257 257 257 257 [:, :, 6, 7] = 3 3 3 3 3 3 3 3 … 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 … 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 … 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ⋮ ⋮ ⋱ ⋮ ⋮ 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 … 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 … 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 … 258 258 258 258 258 258 258 [:, :, 7, 7] = 4 4 4 4 4 4 4 4 … 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 … 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 … 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 ⋮ ⋮ ⋱ ⋮ ⋮ 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 249 249 249 249 249 249 249 249 … 249 249 249 249 249 249 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 254 254 254 254 254 254 254 254 … 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 259 259 259 259 259 259 259 259 … 259 259 259 259 259 259 259
We handle boundary condition by reflexion.
X[X .< 1] = 2 .- X[X .< 1]
Y[Y .< 1] = 2 .- Y[Y .< 1]
X[X .> n] = 2*n .- X[X .> n]
Y[Y .> n] = 2*n .- Y[Y .> n];
10752-element Array{Int64,1}: 255 255 255 255 255 255 255 255 255 255 255 255 255 ⋮ 255 254 253 255 254 253 255 254 253 255 254 253
Patch extractor operator $\Pi$.
I = X + (Y-1)*n
for i in 1 : Base.div(n, w)
for j in 1 : Base.div(n, w)
I[i, j, :, :] = transpose(I[i, j, :, :])
end
end
Pi = f -> reshape(f[I], (n, n, w1*w1))
Pi(f);
256×256×49 Array{Float64,3}: [:, :, 1] = 0.149025 0.156751 0.0939345 … 0.174058 0.257261 0.188708 0.187292 0.198424 0.197087 0.249593 0.273366 0.2474 0.156526 0.194106 0.108213 0.203258 0.255677 0.195508 0.157416 0.09125 0.110311 0.147831 0.166618 0.481993 0.156526 0.194106 0.108213 0.203258 0.255677 0.195508 0.187292 0.198424 0.197087 … 0.249593 0.273366 0.2474 0.149025 0.156751 0.0939345 0.174058 0.257261 0.188708 0.172625 0.121482 0.125642 0.226465 0.162255 0.238564 0.156354 0.129231 0.19552 0.236931 0.240488 0.210275 0.103827 0.148446 0.146989 0.318358 0.431761 0.332057 0.187405 0.0717975 0.165663 … 0.228651 0.167916 0.239054 0.211038 0.262391 0.170467 0.238519 0.223545 0.230995 0.268735 0.267792 0.159248 0.315574 0.292346 0.237907 ⋮ ⋱ ⋮ 0.134526 0.0924799 0.160356 0.207096 0.127727 0.0381167 0.16096 0.181872 0.189489 … 0.200793 0.0946361 0.0930378 0.119397 0.211486 0.109942 0.127007 0.0903574 0.234103 0.148652 0.160793 0.119045 0.130204 0.106108 0.118835 0.0635844 0.190068 0.121474 0.149581 0.136428 0.0981085 0.101373 0.109305 0.136434 0.175996 0.099095 0.0623861 0.000358282 0.107627 0.147529 … 0.155155 0.144552 0.044013 0.0420659 0.0235099 0.0679079 0.210707 0.129841 0.0846607 0.0236848 -0.0203751 0.134365 0.150461 0.123607 0.0406605 0.0287613 0.0291541 0.0324472 0.104116 0.122338 0.0730193 0.0106478 -0.00552674 0.0415626 0.0886524 0.113786 0.111948 0.102421 -0.0007033 0.0324355 … 0.102791 0.109307 0.147607 [:, :, 2] = 0.156751 0.0939345 0.121441 … 0.249593 0.273366 0.2474 0.198424 0.197087 0.107063 0.203258 0.255677 0.195508 0.194106 0.108213 0.105344 0.147831 0.166618 0.481993 0.09125 0.110311 0.114772 0.203258 0.255677 0.195508 0.194106 0.108213 0.105344 0.249593 0.273366 0.2474 0.198424 0.197087 0.107063 … 0.174058 0.257261 0.188708 0.156751 0.0939345 0.121441 0.226465 0.162255 0.238564 0.121482 0.125642 0.0486968 0.236931 0.240488 0.210275 0.129231 0.19552 0.085594 0.318358 0.431761 0.332057 0.148446 0.146989 0.133371 0.228651 0.167916 0.239054 0.0717975 0.165663 0.156312 … 0.238519 0.223545 0.230995 0.262391 0.170467 0.162685 0.315574 0.292346 0.237907 0.267792 0.159248 0.138842 0.293746 0.268041 0.233173 ⋮ ⋱ ⋮ 0.16096 0.181872 0.189489 0.200793 0.0946361 0.0930378 0.119397 0.211486 0.109942 … 0.127007 0.0903574 0.234103 0.148652 0.160793 0.119045 0.130204 0.106108 0.118835 0.0635844 0.190068 0.121474 0.149581 0.136428 0.0981085 0.101373 0.109305 0.136434 0.175996 0.099095 0.0623861 0.000358282 0.107627 0.147529 0.155155 0.144552 0.044013 0.0420659 0.0235099 0.0679079 … 0.210707 0.129841 0.0846607 0.0236848 -0.0203751 0.134365 0.150461 0.123607 0.0406605 0.0287613 0.0291541 0.0324472 0.104116 0.122338 0.0730193 0.0106478 -0.00552674 0.0415626 0.0886524 0.113786 0.111948 0.102421 -0.0007033 0.0324355 0.102791 0.109307 0.147607 0.00828267 0.0344683 0.0134943 … 0.0726556 0.108334 0.101225 [:, :, 3] = 0.0939345 0.121441 0.0939345 … 0.203258 0.255677 0.195508 0.197087 0.107063 0.197087 0.147831 0.166618 0.481993 0.108213 0.105344 0.108213 0.203258 0.255677 0.195508 0.110311 0.114772 0.110311 0.249593 0.273366 0.2474 0.108213 0.105344 0.108213 0.174058 0.257261 0.188708 0.197087 0.107063 0.197087 … 0.226465 0.162255 0.238564 0.0939345 0.121441 0.0939345 0.236931 0.240488 0.210275 0.125642 0.0486968 0.125642 0.318358 0.431761 0.332057 0.19552 0.085594 0.19552 0.228651 0.167916 0.239054 0.146989 0.133371 0.146989 0.238519 0.223545 0.230995 0.165663 0.156312 0.165663 … 0.315574 0.292346 0.237907 0.170467 0.162685 0.170467 0.293746 0.268041 0.233173 0.159248 0.138842 0.159248 0.233755 0.263721 0.286175 ⋮ ⋱ ⋮ 0.119397 0.211486 0.109942 0.127007 0.0903574 0.234103 0.148652 0.160793 0.119045 … 0.130204 0.106108 0.118835 0.0635844 0.190068 0.121474 0.149581 0.136428 0.0981085 0.101373 0.109305 0.136434 0.175996 0.099095 0.0623861 0.000358282 0.107627 0.147529 0.155155 0.144552 0.044013 0.0420659 0.0235099 0.0679079 0.210707 0.129841 0.0846607 0.0236848 -0.0203751 0.134365 … 0.150461 0.123607 0.0406605 0.0287613 0.0291541 0.0324472 0.104116 0.122338 0.0730193 0.0106478 -0.00552674 0.0415626 0.0886524 0.113786 0.111948 0.102421 -0.0007033 0.0324355 0.102791 0.109307 0.147607 0.00828267 0.0344683 0.0134943 0.0726556 0.108334 0.101225 0.0368 0.0495803 0.0509361 … 0.137787 0.0280057 0.0188767 ... [:, :, 47] = 0.0939345 0.156751 0.149025 … 0.524932 0.374081 0.195508 0.125642 0.121482 0.172625 0.200204 0.204699 0.2474 0.19552 0.129231 0.156354 0.150742 0.166117 0.188708 0.146989 0.148446 0.103827 0.218461 0.218437 0.238564 0.165663 0.0717975 0.187405 0.189023 0.292622 0.210275 0.170467 0.262391 0.211038 … 0.365701 0.376411 0.332057 0.159248 0.267792 0.268735 0.30337 0.279026 0.239054 0.18562 0.137005 0.189609 0.28749 0.19804 0.230995 0.188607 0.242915 0.234702 0.290097 0.257253 0.237907 0.228297 0.149969 0.382722 0.288788 0.279859 0.233173 0.238514 0.231974 0.370069 … 0.259965 0.348417 0.286175 0.264326 0.272157 0.169178 0.319622 0.224068 0.216238 0.26741 0.398823 0.0718746 0.169366 0.250736 0.267595 ⋮ ⋱ ⋮ 0.0635844 0.0915603 0.0205199 0.0747481 0.052986 0.0981085 0.101373 0.126429 0.00986551 … 0.0702762 0.129937 0.0623861 0.000358282 0.00138209 0.0441279 -0.0586144 0.0546166 0.044013 0.0420659 0.0634842 -0.0381625 0.151441 0.0420701 0.0846607 0.0236848 0.00604683 0.0255284 0.0916322 0.0473419 0.0406605 0.0287613 0.0211243 0.128846 0.0880231 0.0917012 0.0730193 0.0106478 0.00640446 -0.0144661 … 0.0530275 0.0413055 0.111948 0.102421 0.028632 -0.039096 0.0774692 0.105287 0.147607 0.00828267 -0.01133 0.0699409 0.082484 0.107345 0.101225 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.0151333 -0.0366769 0.00278841 0.0703177 0.151308 0.118661 0.0368 0.076205 0.0446797 … 0.0780533 0.0871116 0.0188767 [:, :, 48] = 0.156751 0.149025 0.240929 … 0.200204 0.204699 0.2474 0.121482 0.172625 0.16456 0.150742 0.166117 0.188708 0.129231 0.156354 0.136764 0.218461 0.218437 0.238564 0.148446 0.103827 0.215877 0.189023 0.292622 0.210275 0.0717975 0.187405 0.126173 0.365701 0.376411 0.332057 0.262391 0.211038 0.240095 … 0.30337 0.279026 0.239054 0.267792 0.268735 0.248261 0.28749 0.19804 0.230995 0.137005 0.189609 0.306711 0.290097 0.257253 0.237907 0.242915 0.234702 0.248266 0.288788 0.279859 0.233173 0.149969 0.382722 0.171917 0.259965 0.348417 0.286175 0.231974 0.370069 0.153497 … 0.319622 0.224068 0.216238 0.272157 0.169178 0.0955184 0.169366 0.250736 0.267595 0.398823 0.0718746 0.0522659 0.167178 0.139326 0.147604 ⋮ ⋱ ⋮ 0.101373 0.126429 0.00986551 0.0702762 0.129937 0.0623861 0.000358282 0.00138209 0.0441279 … -0.0586144 0.0546166 0.044013 0.0420659 0.0634842 -0.0381625 0.151441 0.0420701 0.0846607 0.0236848 0.00604683 0.0255284 0.0916322 0.0473419 0.0406605 0.0287613 0.0211243 0.128846 0.0880231 0.0917012 0.0730193 0.0106478 0.00640446 -0.0144661 0.0530275 0.0413055 0.111948 0.102421 0.028632 -0.039096 … 0.0774692 0.105287 0.147607 0.00828267 -0.01133 0.0699409 0.082484 0.107345 0.101225 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.0151333 -0.0366769 0.00278841 0.0703177 0.151308 0.118661 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.00828267 -0.01133 0.0699409 … 0.082484 0.107345 0.101225 [:, :, 49] = 0.149025 0.240929 0.212642 … 0.150742 0.166117 0.188708 0.172625 0.16456 0.199422 0.218461 0.218437 0.238564 0.156354 0.136764 0.153834 0.189023 0.292622 0.210275 0.103827 0.215877 0.105064 0.365701 0.376411 0.332057 0.187405 0.126173 0.253447 0.30337 0.279026 0.239054 0.211038 0.240095 0.312458 … 0.28749 0.19804 0.230995 0.268735 0.248261 0.463218 0.290097 0.257253 0.237907 0.189609 0.306711 0.246605 0.288788 0.279859 0.233173 0.234702 0.248266 0.175262 0.259965 0.348417 0.286175 0.382722 0.171917 0.205089 0.319622 0.224068 0.216238 0.370069 0.153497 0.15277 … 0.169366 0.250736 0.267595 0.169178 0.0955184 0.115215 0.167178 0.139326 0.147604 0.0718746 0.0522659 0.0879985 0.228614 0.229078 0.200206 ⋮ ⋱ ⋮ 0.000358282 0.00138209 0.0441279 -0.0586144 0.0546166 0.044013 0.0420659 0.0634842 -0.0381625 … 0.151441 0.0420701 0.0846607 0.0236848 0.00604683 0.0255284 0.0916322 0.0473419 0.0406605 0.0287613 0.0211243 0.128846 0.0880231 0.0917012 0.0730193 0.0106478 0.00640446 -0.0144661 0.0530275 0.0413055 0.111948 0.102421 0.028632 -0.039096 0.0774692 0.105287 0.147607 0.00828267 -0.01133 0.0699409 … 0.082484 0.107345 0.101225 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.0151333 -0.0366769 0.00278841 0.0703177 0.151308 0.118661 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.00828267 -0.01133 0.0699409 0.082484 0.107345 0.101225 0.102421 0.028632 -0.039096 … 0.0774692 0.105287 0.147607
We store the patches $\Pi(f)$ as a $n \times n \times w_1^2$ matrix $P$ such that, for each pixel $x$, $P(x)$ is a vector of size $w_1^2$ storing the entries of $p_x(f)$.
P = Pi(f);
256×256×49 Array{Float64,3}: [:, :, 1] = 0.149025 0.156751 0.0939345 … 0.174058 0.257261 0.188708 0.187292 0.198424 0.197087 0.249593 0.273366 0.2474 0.156526 0.194106 0.108213 0.203258 0.255677 0.195508 0.157416 0.09125 0.110311 0.147831 0.166618 0.481993 0.156526 0.194106 0.108213 0.203258 0.255677 0.195508 0.187292 0.198424 0.197087 … 0.249593 0.273366 0.2474 0.149025 0.156751 0.0939345 0.174058 0.257261 0.188708 0.172625 0.121482 0.125642 0.226465 0.162255 0.238564 0.156354 0.129231 0.19552 0.236931 0.240488 0.210275 0.103827 0.148446 0.146989 0.318358 0.431761 0.332057 0.187405 0.0717975 0.165663 … 0.228651 0.167916 0.239054 0.211038 0.262391 0.170467 0.238519 0.223545 0.230995 0.268735 0.267792 0.159248 0.315574 0.292346 0.237907 ⋮ ⋱ ⋮ 0.134526 0.0924799 0.160356 0.207096 0.127727 0.0381167 0.16096 0.181872 0.189489 … 0.200793 0.0946361 0.0930378 0.119397 0.211486 0.109942 0.127007 0.0903574 0.234103 0.148652 0.160793 0.119045 0.130204 0.106108 0.118835 0.0635844 0.190068 0.121474 0.149581 0.136428 0.0981085 0.101373 0.109305 0.136434 0.175996 0.099095 0.0623861 0.000358282 0.107627 0.147529 … 0.155155 0.144552 0.044013 0.0420659 0.0235099 0.0679079 0.210707 0.129841 0.0846607 0.0236848 -0.0203751 0.134365 0.150461 0.123607 0.0406605 0.0287613 0.0291541 0.0324472 0.104116 0.122338 0.0730193 0.0106478 -0.00552674 0.0415626 0.0886524 0.113786 0.111948 0.102421 -0.0007033 0.0324355 … 0.102791 0.109307 0.147607 [:, :, 2] = 0.156751 0.0939345 0.121441 … 0.249593 0.273366 0.2474 0.198424 0.197087 0.107063 0.203258 0.255677 0.195508 0.194106 0.108213 0.105344 0.147831 0.166618 0.481993 0.09125 0.110311 0.114772 0.203258 0.255677 0.195508 0.194106 0.108213 0.105344 0.249593 0.273366 0.2474 0.198424 0.197087 0.107063 … 0.174058 0.257261 0.188708 0.156751 0.0939345 0.121441 0.226465 0.162255 0.238564 0.121482 0.125642 0.0486968 0.236931 0.240488 0.210275 0.129231 0.19552 0.085594 0.318358 0.431761 0.332057 0.148446 0.146989 0.133371 0.228651 0.167916 0.239054 0.0717975 0.165663 0.156312 … 0.238519 0.223545 0.230995 0.262391 0.170467 0.162685 0.315574 0.292346 0.237907 0.267792 0.159248 0.138842 0.293746 0.268041 0.233173 ⋮ ⋱ ⋮ 0.16096 0.181872 0.189489 0.200793 0.0946361 0.0930378 0.119397 0.211486 0.109942 … 0.127007 0.0903574 0.234103 0.148652 0.160793 0.119045 0.130204 0.106108 0.118835 0.0635844 0.190068 0.121474 0.149581 0.136428 0.0981085 0.101373 0.109305 0.136434 0.175996 0.099095 0.0623861 0.000358282 0.107627 0.147529 0.155155 0.144552 0.044013 0.0420659 0.0235099 0.0679079 … 0.210707 0.129841 0.0846607 0.0236848 -0.0203751 0.134365 0.150461 0.123607 0.0406605 0.0287613 0.0291541 0.0324472 0.104116 0.122338 0.0730193 0.0106478 -0.00552674 0.0415626 0.0886524 0.113786 0.111948 0.102421 -0.0007033 0.0324355 0.102791 0.109307 0.147607 0.00828267 0.0344683 0.0134943 … 0.0726556 0.108334 0.101225 [:, :, 3] = 0.0939345 0.121441 0.0939345 … 0.203258 0.255677 0.195508 0.197087 0.107063 0.197087 0.147831 0.166618 0.481993 0.108213 0.105344 0.108213 0.203258 0.255677 0.195508 0.110311 0.114772 0.110311 0.249593 0.273366 0.2474 0.108213 0.105344 0.108213 0.174058 0.257261 0.188708 0.197087 0.107063 0.197087 … 0.226465 0.162255 0.238564 0.0939345 0.121441 0.0939345 0.236931 0.240488 0.210275 0.125642 0.0486968 0.125642 0.318358 0.431761 0.332057 0.19552 0.085594 0.19552 0.228651 0.167916 0.239054 0.146989 0.133371 0.146989 0.238519 0.223545 0.230995 0.165663 0.156312 0.165663 … 0.315574 0.292346 0.237907 0.170467 0.162685 0.170467 0.293746 0.268041 0.233173 0.159248 0.138842 0.159248 0.233755 0.263721 0.286175 ⋮ ⋱ ⋮ 0.119397 0.211486 0.109942 0.127007 0.0903574 0.234103 0.148652 0.160793 0.119045 … 0.130204 0.106108 0.118835 0.0635844 0.190068 0.121474 0.149581 0.136428 0.0981085 0.101373 0.109305 0.136434 0.175996 0.099095 0.0623861 0.000358282 0.107627 0.147529 0.155155 0.144552 0.044013 0.0420659 0.0235099 0.0679079 0.210707 0.129841 0.0846607 0.0236848 -0.0203751 0.134365 … 0.150461 0.123607 0.0406605 0.0287613 0.0291541 0.0324472 0.104116 0.122338 0.0730193 0.0106478 -0.00552674 0.0415626 0.0886524 0.113786 0.111948 0.102421 -0.0007033 0.0324355 0.102791 0.109307 0.147607 0.00828267 0.0344683 0.0134943 0.0726556 0.108334 0.101225 0.0368 0.0495803 0.0509361 … 0.137787 0.0280057 0.0188767 ... [:, :, 47] = 0.0939345 0.156751 0.149025 … 0.524932 0.374081 0.195508 0.125642 0.121482 0.172625 0.200204 0.204699 0.2474 0.19552 0.129231 0.156354 0.150742 0.166117 0.188708 0.146989 0.148446 0.103827 0.218461 0.218437 0.238564 0.165663 0.0717975 0.187405 0.189023 0.292622 0.210275 0.170467 0.262391 0.211038 … 0.365701 0.376411 0.332057 0.159248 0.267792 0.268735 0.30337 0.279026 0.239054 0.18562 0.137005 0.189609 0.28749 0.19804 0.230995 0.188607 0.242915 0.234702 0.290097 0.257253 0.237907 0.228297 0.149969 0.382722 0.288788 0.279859 0.233173 0.238514 0.231974 0.370069 … 0.259965 0.348417 0.286175 0.264326 0.272157 0.169178 0.319622 0.224068 0.216238 0.26741 0.398823 0.0718746 0.169366 0.250736 0.267595 ⋮ ⋱ ⋮ 0.0635844 0.0915603 0.0205199 0.0747481 0.052986 0.0981085 0.101373 0.126429 0.00986551 … 0.0702762 0.129937 0.0623861 0.000358282 0.00138209 0.0441279 -0.0586144 0.0546166 0.044013 0.0420659 0.0634842 -0.0381625 0.151441 0.0420701 0.0846607 0.0236848 0.00604683 0.0255284 0.0916322 0.0473419 0.0406605 0.0287613 0.0211243 0.128846 0.0880231 0.0917012 0.0730193 0.0106478 0.00640446 -0.0144661 … 0.0530275 0.0413055 0.111948 0.102421 0.028632 -0.039096 0.0774692 0.105287 0.147607 0.00828267 -0.01133 0.0699409 0.082484 0.107345 0.101225 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.0151333 -0.0366769 0.00278841 0.0703177 0.151308 0.118661 0.0368 0.076205 0.0446797 … 0.0780533 0.0871116 0.0188767 [:, :, 48] = 0.156751 0.149025 0.240929 … 0.200204 0.204699 0.2474 0.121482 0.172625 0.16456 0.150742 0.166117 0.188708 0.129231 0.156354 0.136764 0.218461 0.218437 0.238564 0.148446 0.103827 0.215877 0.189023 0.292622 0.210275 0.0717975 0.187405 0.126173 0.365701 0.376411 0.332057 0.262391 0.211038 0.240095 … 0.30337 0.279026 0.239054 0.267792 0.268735 0.248261 0.28749 0.19804 0.230995 0.137005 0.189609 0.306711 0.290097 0.257253 0.237907 0.242915 0.234702 0.248266 0.288788 0.279859 0.233173 0.149969 0.382722 0.171917 0.259965 0.348417 0.286175 0.231974 0.370069 0.153497 … 0.319622 0.224068 0.216238 0.272157 0.169178 0.0955184 0.169366 0.250736 0.267595 0.398823 0.0718746 0.0522659 0.167178 0.139326 0.147604 ⋮ ⋱ ⋮ 0.101373 0.126429 0.00986551 0.0702762 0.129937 0.0623861 0.000358282 0.00138209 0.0441279 … -0.0586144 0.0546166 0.044013 0.0420659 0.0634842 -0.0381625 0.151441 0.0420701 0.0846607 0.0236848 0.00604683 0.0255284 0.0916322 0.0473419 0.0406605 0.0287613 0.0211243 0.128846 0.0880231 0.0917012 0.0730193 0.0106478 0.00640446 -0.0144661 0.0530275 0.0413055 0.111948 0.102421 0.028632 -0.039096 … 0.0774692 0.105287 0.147607 0.00828267 -0.01133 0.0699409 0.082484 0.107345 0.101225 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.0151333 -0.0366769 0.00278841 0.0703177 0.151308 0.118661 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.00828267 -0.01133 0.0699409 … 0.082484 0.107345 0.101225 [:, :, 49] = 0.149025 0.240929 0.212642 … 0.150742 0.166117 0.188708 0.172625 0.16456 0.199422 0.218461 0.218437 0.238564 0.156354 0.136764 0.153834 0.189023 0.292622 0.210275 0.103827 0.215877 0.105064 0.365701 0.376411 0.332057 0.187405 0.126173 0.253447 0.30337 0.279026 0.239054 0.211038 0.240095 0.312458 … 0.28749 0.19804 0.230995 0.268735 0.248261 0.463218 0.290097 0.257253 0.237907 0.189609 0.306711 0.246605 0.288788 0.279859 0.233173 0.234702 0.248266 0.175262 0.259965 0.348417 0.286175 0.382722 0.171917 0.205089 0.319622 0.224068 0.216238 0.370069 0.153497 0.15277 … 0.169366 0.250736 0.267595 0.169178 0.0955184 0.115215 0.167178 0.139326 0.147604 0.0718746 0.0522659 0.0879985 0.228614 0.229078 0.200206 ⋮ ⋱ ⋮ 0.000358282 0.00138209 0.0441279 -0.0586144 0.0546166 0.044013 0.0420659 0.0634842 -0.0381625 … 0.151441 0.0420701 0.0846607 0.0236848 0.00604683 0.0255284 0.0916322 0.0473419 0.0406605 0.0287613 0.0211243 0.128846 0.0880231 0.0917012 0.0730193 0.0106478 0.00640446 -0.0144661 0.0530275 0.0413055 0.111948 0.102421 0.028632 -0.039096 0.0774692 0.105287 0.147607 0.00828267 -0.01133 0.0699409 … 0.082484 0.107345 0.101225 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.0151333 -0.0366769 0.00278841 0.0703177 0.151308 0.118661 0.0368 0.076205 0.0446797 0.0780533 0.0871116 0.0188767 0.00828267 -0.01133 0.0699409 0.082484 0.107345 0.101225 0.102421 0.028632 -0.039096 … 0.0774692 0.105287 0.147607
Display some example of patches.
figure(figsize = (5,5))
for i in 1:16
x = rand(1:n)
y = rand(1:n)
imageplot(reshape(P[x, y, :], (w1, w1)), "", [4, 4, i])
end
A linear filter (convolution) can be computed using this patch representation as $$ g(x) = \sum_{i} \la_i p_x(f)_i. $$
In the case where $\la_i=1/w_1^2$, this defines the mean value inside the patch: $$ g(x) = \frac{1}{w_1^2} \sum_{i} p_x(f)_i. $$
Pmean = f -> mean(Pi(f), 3)
Pmean(f);
256×256×1 Array{Float64,3}: [:, :, 1] = 0.148283 0.154691 0.16204 … 0.282161 0.296818 0.29694 0.147616 0.151984 0.159783 0.286 0.300655 0.303734 0.143027 0.146224 0.153917 0.280187 0.296895 0.299887 0.141167 0.145997 0.152315 0.280011 0.294418 0.296603 0.144704 0.148478 0.15563 0.262443 0.268037 0.265238 0.153427 0.15714 0.164824 … 0.244728 0.24601 0.244591 0.158687 0.161211 0.172276 0.245359 0.246366 0.244366 0.163632 0.16667 0.178831 0.257029 0.257915 0.256602 0.17627 0.179749 0.188939 0.267264 0.270653 0.268242 0.189338 0.188915 0.198728 0.270065 0.273721 0.273194 0.207416 0.200286 0.209368 … 0.249557 0.25288 0.255951 0.221554 0.214171 0.216342 0.236418 0.2388 0.240719 0.229538 0.221161 0.215968 0.23267 0.235947 0.239135 ⋮ ⋱ ⋮ 0.133876 0.130373 0.119092 0.110398 0.0994353 0.0971842 0.123187 0.121941 0.108918 … 0.108255 0.0968821 0.0955378 0.105233 0.1042 0.0916193 0.104851 0.0935978 0.0905933 0.0908436 0.0901411 0.0830293 0.100059 0.0891829 0.0822383 0.0729072 0.0738451 0.0685899 0.0934663 0.0817375 0.0744956 0.0611652 0.0600262 0.0574476 0.0927329 0.0830264 0.0773482 0.0480283 0.0459777 0.0461525 … 0.0894689 0.0814104 0.0763362 0.0400716 0.0388043 0.040175 0.0909061 0.0838651 0.0806565 0.0340859 0.0313242 0.0339256 0.0880422 0.0859505 0.0841579 0.0340277 0.0324301 0.0339947 0.0840658 0.0830444 0.0827583 0.0324908 0.0306488 0.0309028 0.0822555 0.0821955 0.0827708 0.0346863 0.031425 0.0310778 … 0.0857721 0.0867293 0.0881238
Display it.
figure(figsize = (5,5))
imageplot(Pmean(f)[:, :])
Note that this is not a rank filter (this a linear filter) and that it is not contrast invariant. This is shown by displaying $$ \phi_\beta^B(f) - \psi^{-1} \circ \phi_\beta^B \circ \psi(f) $$ which is non-zero.
p = 100
psi = f -> f.^(1/p)
ipsi = f -> f.^p
figure(figsize = (5,5))
imageplot(Pmean(abs(f))[:, :] - ipsi(Pmean(psi(abs(f))))[:, :])
We now come back to the discrete computation of a rank filter $\phi_\be^B$ for $B$ a square of width $w_1 \times w_1$ pixels.
It is defined as $g=\phi_\beta^B(f)$ where $$ g(x) = \text{rank}_{r(\beta)}( p_x(f) ) $$ where $\text{rank}_r(v)$ extracted the element of order $k$ in the sorted value of $v \in \RR^Q$ (here $Q=w_1^2$). More precisely, we denote $$ v_{\si(1)} \leq v_{\si(2)} \leq \ldots \leq v_{\si(Q)} $$ where $\si \in \Sigma_Q$ is an ordering permutation, which can be computed in $ O(N \log(N)) $ operations with the QuickSort algorithm. Then the ranked valued is $$ \text{rank}_r(v) = v_{\si(r)}. $$
In order to be consistent with the continuous definition of the rank filter, one should define the rank as $$ r=r(\beta) = \lfloor Q r \rfloor. $$
r = beta -> min(ceil(beta*w1*w1), w1*w1 - 1)
(::#11) (generic function with 1 method)
Shortcut for the rank filter.
subsample = (x, s) -> x[: , : , s]
phi = (f, beta) -> subsample(sort(Pi(f), 3), Int(r(beta)) + 1)
(::#15) (generic function with 1 method)
Exercise 1
Compute the rank filter for several values of $\beta$.
include("NtSolutions/denoisingadv_7_rankfilters/exo1.jl")
256×256 Array{Float64,2}: 0.198424 0.240929 0.240929 0.389259 … 0.630043 0.630043 0.630043 0.198424 0.240929 0.240929 0.389259 0.630043 0.630043 0.630043 0.198424 0.240929 0.240929 0.389259 0.630043 0.630043 0.630043 0.198424 0.240929 0.240929 0.389259 0.630043 0.630043 0.630043 0.198424 0.240929 0.253447 0.407904 0.524932 0.524932 0.524932 0.262391 0.262391 0.312458 0.407904 … 0.468698 0.468698 0.468698 0.268735 0.268735 0.463218 0.463218 0.431761 0.431761 0.376411 0.268735 0.306711 0.463218 0.463218 0.431761 0.431761 0.376411 0.268735 0.306711 0.463218 0.463218 0.431761 0.431761 0.376411 0.382722 0.382722 0.463218 0.463218 0.431761 0.431761 0.376411 0.382722 0.382722 0.463218 0.463218 … 0.348417 0.348417 0.348417 0.382722 0.382722 0.463218 0.463218 0.348417 0.348417 0.348417 0.398823 0.398823 0.463218 0.463218 0.348417 0.348417 0.348417 ⋮ ⋱ ⋮ 0.219218 0.219218 0.219218 0.219218 0.234103 0.234103 0.234103 0.219218 0.219218 0.219218 0.219218 … 0.234103 0.234103 0.234103 0.219218 0.219218 0.219218 0.219218 0.234103 0.234103 0.234103 0.219218 0.219218 0.219218 0.219218 0.227547 0.227547 0.227547 0.219218 0.219218 0.219218 0.219218 0.210707 0.172393 0.172393 0.219218 0.219218 0.219218 0.219218 0.210707 0.172393 0.172393 0.219218 0.219218 0.219218 0.219218 … 0.210707 0.151441 0.151441 0.134365 0.134365 0.134365 0.134365 0.210707 0.151441 0.151441 0.134365 0.134365 0.134365 0.134365 0.151308 0.151308 0.151308 0.102421 0.102421 0.128846 0.128846 0.151308 0.151308 0.151308 0.102421 0.102421 0.102421 0.102421 0.151308 0.151308 0.151308 0.102421 0.102421 0.102421 0.102421 … 0.151308 0.151308 0.151308
## Insert your code here.
The case $\beta=0$ corresponds to the closing operator from mathematical morphology (min filter).
closing = f -> phi(f, 0)
figure(figsize = (5,5))
imageplot(closing(f))
The case $\beta=1$ corresponds to the opening operator from mathematical morphology (max filter).
opening = f -> phi(f, 1)
figure(figsize = (5,5))
imageplot(opening(f))
Exercise 2
Compute a closing followed by an opening.
include("NtSolutions/denoisingadv_7_rankfilters/exo2.jl")
## Insert your code here.
Exercise 3
Compute an opening followed by a closing.
include("NtSolutions/denoisingadv_7_rankfilters/exo3.jl")
## Insert your code here.
Exercise 4
Perform iterated opening and closing.
include("NtSolutions/denoisingadv_7_rankfilters/exo4.jl")
## Insert your code here.
The median filter corresponds to the case where $\be=1/2$.
medfilt = f -> phi(f, 1/2)
medfilt(f);
256×256 Array{Float64,2}: 0.156526 0.156751 0.157416 … 0.2474 0.255677 0.204699 0.156526 0.156751 0.16456 0.2474 0.2474 0.238564 0.156354 0.149025 0.156526 0.236931 0.2474 0.238564 0.148446 0.147951 0.149025 0.240488 0.255677 0.2474 0.149025 0.149025 0.156354 0.238564 0.240488 0.238564 0.156354 0.156751 0.16456 … 0.234112 0.230995 0.230995 0.156354 0.156751 0.159248 0.237907 0.238564 0.237907 0.159248 0.159248 0.165663 0.240488 0.257253 0.239054 0.170467 0.170467 0.175262 0.279026 0.279859 0.279859 0.18562 0.175025 0.18562 0.286175 0.279859 0.279859 0.189609 0.188607 0.188607 … 0.259965 0.259965 0.259965 0.228297 0.228297 0.211038 0.239249 0.250736 0.250736 0.234702 0.231974 0.228297 0.233755 0.239249 0.237907 ⋮ ⋱ ⋮ 0.134526 0.132634 0.121474 0.124645 0.0960981 0.0930378 0.121474 0.121474 0.119045 … 0.118835 0.0960981 0.0930378 0.116621 0.109942 0.10885 0.123607 0.0960981 0.0916322 0.107627 0.107627 0.0915603 0.104116 0.0916322 0.0846607 0.0679079 0.0679079 0.0678707 0.0917012 0.0880231 0.0730193 0.0420659 0.0415626 0.0415626 0.0917012 0.0880231 0.0774692 0.0324472 0.0324355 0.0324472 … 0.0916322 0.0880231 0.082484 0.0344683 0.0324472 0.0344683 0.0886524 0.0871116 0.0846607 0.0291541 0.0291541 0.0291541 0.0880231 0.0880231 0.0871116 0.0324472 0.0324472 0.0324472 0.082484 0.0871116 0.082484 0.0344683 0.0344683 0.0344683 0.082484 0.082484 0.082484 0.0344683 0.0324355 0.0324355 … 0.082484 0.0871116 0.0871116
Display the result.
figure(figsize = (5,5))
imageplot(medfilt(f))
Iterated median filtering computes $$ f^{(\ell+1)} = \phi_{1/2}^B( f^{(\ell)} ). $$
In the case where $f$ is of class $C^3$ and $\nabla f(x) \neq 0$, one has the following Taylor expansion $$ \phi_{1/2}^{B_\epsilon}(x) = f(x) + \frac{\epsilon^2}{6} \norm{\nabla f(x)} \text{Curv}(f)(x) + O(\epsilon^{7/3}) $$ where the curvature operator is $$ \text{Curv}(f) = \text{div}\pa{ \frac{\nabla f}{\norm{\nabla f}} }. $$
Intuitively, it means that if one iterates the operator $ \phi_{1/2}^{B_\epsilon} $ with a proper re-scaling $\ell \leftrightarrow t$ and when $\epsilon \rightarrow 0$, then $f^{(\ell)}$ tends to the solution to the famous mean-curvature motion PDE $$ \pd{f}{t} = \norm{\nabla f} \text{Curv}(f). $$
This conjecture was initially mentionned in BeMerOsh92. This was rigorously proved in Ishii95, BarGeorg, Evans93 using the machinery of viscosity solutions.
Similar result holds for other class of contrast invariant operator, see for instance Cao98 for affine invariant operators, and GuiMoRy04 for an axiomatic and general framework.
Exercise 5
Perform iterated median filtering, and store the output in $f_1$.
include("NtSolutions/denoisingadv_7_rankfilters/exo5.jl")
## Insert your code here.
Display.
figure(figsize = (5,5))
imageplot(f1)