Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

📚 The CoCalc Library - books, templates and other resources

132930 views
License: OTHER
1
2
\newcommand{\filtersize}{3}
3
\newcommand{\filterx}{8}
4
\newcommand{\filtery}{2.2}
5
\newcommand{\filteroffset}{1}
6
7
\newcommand{\filterxres}{12}
8
9
\newcommand{\imagesize}{7}
10
\newcommand{\imagex}{0}
11
\newcommand{\imagey}{0}
12
\newcommand{\imageoffset}{2}
13
14
\newcommand{\outx}{16}
15
\newcommand{\outy}{0}
16
\newcommand{\outoffset}{2}
17
18
\newcommand{\percx}{1}
19
\newcommand{\percy}{2}
20
\begin{tikzpicture}[scale=0.6]
21
\tikzstyle{point}=[draw=none,inner sep=0pt]
22
23
24
% draw perceptive field
25
\node (p1)[point] at (\imagex+\percx,
26
\imagey+\percy+\percx*\imageoffset/\imagesize) {};
27
\node (p2)[point] at (\imagex+\percx+\filtersize,
28
\imagey+\percy+\percx*\imageoffset/\imagesize+\filtersize*\imageoffset/\imagesize) {};
29
\node (p3)[point,blue] at (\imagex+\percx+\filtersize,
30
\imagey+\percy+\filtersize+\percx*\imageoffset/\imagesize+\filtersize*\imageoffset/\imagesize) {};
31
\node (p4)[point] at (\imagex+\percx,
32
\imagey+\percy+\filtersize+\percx*\imageoffset/\imagesize) {};
33
\draw[fill=gray] (p1.center) -- (p2.center) -- (p3.center) -- (p4.center) -- (p1.center);
34
35
% draw output point
36
\node (o1)[point] at (\outx+\percx+1,
37
\outy+\percy+\percx*\outoffset/\imagesize+1+1*\outoffset/\imagesize) {};
38
\node (o2)[point] at (\outx+\percx+2,
39
\outy+\percy+\percx*\outoffset/\imagesize+1*\outoffset/\imagesize+1+1*\outoffset/\imagesize) {};
40
\node (o3)[point,blue] at (\outx+\percx+2,
41
\outy+\percy+1+\percx*\outoffset/\imagesize+1*\outoffset/\imagesize+1+1*\outoffset/\imagesize) {};
42
\node (o4)[point] at (\outx+\percx+1,
43
\outy+\percy+2+\percx*\outoffset/\imagesize+1*\outoffset/\imagesize) {};
44
\draw[fill=gray] (o1.center) -- (o2.center) -- (o3.center) -- (o4.center) -- (o1.center);
45
46
% draw image
47
\foreach \x in {0,...,\imagesize}
48
{
49
\draw (\imagex+\x, \imagey+\x*\imageoffset/\imagesize) -- (\imagex+\x, \imagey+\imagesize+\x*\imageoffset/\imagesize);
50
\draw (\imagex, \imagey+\x) -- (\imagex+\imagesize, \imagey+\x+\imageoffset);
51
}
52
53
% draw filter
54
\foreach \x in {0,...,\filtersize}
55
{
56
\draw (\filterx+\x, \filtery+\x*\filteroffset/\filtersize) -- (\filterx+\x, \filtery+\filtersize+\x*\filteroffset/\filtersize);
57
\draw (\filterx, \filtery+\x) -- (\filterx+\filtersize, \filtery+\x+\filteroffset);
58
}
59
60
% draw filter result
61
\foreach \x in {0,...,\filtersize}
62
{
63
\draw (\filterxres+\x, \filtery+\x*\filteroffset/\filtersize) -- (\filterxres+\x, \filtery+\filtersize+\x*\filteroffset/\filtersize);
64
\draw (\filterxres, \filtery+\x) -- (\filterxres+\filtersize, \filtery+\x+\filteroffset);
65
}
66
67
% draw out
68
\foreach \x in {0,...,\imagesize}
69
{
70
\draw (\outx+\x, \outy+\x*\outoffset/\imagesize) -- (\outx+\x, \outy+\imagesize+\x*\outoffset/\imagesize);
71
\draw (\outx, \outy+\x) -- (\outx+\imagesize, \outy+\x+\outoffset);
72
}
73
74
\node at (\imagex + \imagesize/2,\imagey + \imagesize + 2) {\Huge $I \in \mathbb{R}^{\imagesize \times \imagesize}$};
75
\node[text width=4cm, align=center] at (\filterx + \filtersize/2,\filtery + \filtersize - 4) {\large Filter kernel\\$F \in \mathbb{R}^{\filtersize \times \filtersize}$};
76
\node[text width=4cm, align=center] at (\filterx + 4 + \filtersize/2,\filtery + \filtersize - 4) {\large Result of point-wise multiplication};
77
\node at (\outx + \imagesize/2,\outy + \imagesize + 2) {\Huge $I' \in \mathbb{R}^{\imagesize \times \imagesize}$};
78
79
% Start image (left to right, top to bottom)
80
\node[draw=none] at (0.5, 6.6) {\large 104};
81
\node[draw=none] at (1.5, 6.9) {\large 116};
82
\node[draw=none] at (2.5, 7.2) {\large 116};
83
\node[draw=none] at (3.5, 7.5) {\large 112};
84
\node[draw=none] at (4.5, 7.8) {\large 58};
85
\node[draw=none] at (5.5, 8.1) {\large 47};
86
\node[draw=none] at (6.5, 8.4) {\large 47};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
87
88
\node[draw=none] at (0.5, 5.6) {\large 109};
89
\node[draw=none] at (1.5, 5.9) {\large 97};
90
\node[draw=none] at (2.5, 6.2) {\large 114};
91
\node[draw=none] at (3.5, 6.5) {\large 116};
92
\node[draw=none] at (4.5, 6.8) {\large 105};
93
\node[draw=none] at (5.5, 7.1) {\large 110};
94
\node[draw=none] at (6.5, 7.4) {\large 45};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95
96
\node[draw=none] at (0.5, 4.6) {\large 116};
97
\node[draw=none] at (1.5, 4.9) {\large 104};
98
\node[draw=none] at (2.5, 5.2) {\large 111};
99
\node[draw=none] at (3.5, 5.5) {\large 109};
100
\node[draw=none] at (4.5, 5.8) {\large 97};
101
\node[draw=none] at (5.5, 6.1) {\large 46};
102
\node[draw=none] at (6.5, 6.4) {\large 100};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103
104
\node[draw=none] at (0.5, 3.6) {\large 101};
105
\node[draw=none] at (1.5, 3.9) {\large 47};
106
\node[draw=none] at (2.5, 4.2) {\large 109};
107
\node[draw=none] at (3.5, 4.5) {\large 97};
108
\node[draw=none] at (4.5, 4.8) {\large 115};
109
\node[draw=none] at (5.5, 5.1) {\large 116};
110
\node[draw=none] at (6.5, 5.4) {\large 101};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
111
112
\node[draw=none] at (0.5, 2.6) {\large 114};
113
\node[draw=none] at (1.5, 2.9) {\large 47};
114
\node[draw=none] at (2.5, 3.2) {\large 99};
115
\node[draw=none] at (3.5, 3.5) {\large 97};
116
\node[draw=none] at (4.5, 3.8) {\large 116};
117
\node[draw=none] at (5.5, 4.1) {\large 99};
118
\node[draw=none] at (6.5, 4.4) {\large 97};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
119
120
\node[draw=none] at (0.5, 1.6) {\large 116};
121
\node[draw=none] at (1.5, 1.9) {\large 99};
122
\node[draw=none] at (2.5, 2.2) {\large 97};
123
\node[draw=none] at (3.5, 2.5) {\large 116};
124
\node[draw=none] at (4.5, 2.8) {\large 46};
125
\node[draw=none] at (5.5, 3.1) {\large 112};
126
\node[draw=none] at (6.5, 3.4) {\large 104};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
127
128
\node[draw=none] at (0.5, 0.6) {\large 112};
129
\node[draw=none] at (1.5, 0.9) {\large 63};
130
\node[draw=none] at (2.5, 1.2) {\large 118};
131
\node[draw=none] at (3.5, 1.5) {\large 61};
132
\node[draw=none] at (4.5, 1.8) {\large 49};
133
\node[draw=none] at (5.5, 2.1) {\large 46};
134
\node[draw=none] at (6.5, 2.4) {\large 48};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
135
136
137
% Filter
138
\node[draw=none] at ( 8.5, 4.8) {\large 9};
139
\node[draw=none] at ( 9.5, 5.1) {\large -3};
140
\node[draw=none] at (10.5, 5.4) {\large -1};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
141
\node[draw=none] at ( 8.5, 3.8) {\large -6};
142
\node[draw=none] at ( 9.5, 4.1) {\large 5};
143
\node[draw=none] at (10.5, 4.4) {\large 3};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144
\node[draw=none] at ( 8.5, 2.8) {\large 2};
145
\node[draw=none] at ( 9.5, 3.1) {\large -8};
146
\node[draw=none] at (10.5, 3.4) {\large 0};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
147
148
149
% Result
150
\node[draw=none] at (12.5, 4.8) {\large 936};
151
\node[draw=none] at (13.5, 5.1) {\large -333};
152
\node[draw=none] at (14.5, 5.4) {\large -109};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
153
\node[draw=none] at (12.5, 3.8) {\large -282};
154
\node[draw=none] at (13.5, 4.1) {\large 545};
155
\node[draw=none] at (14.5, 4.4) {\large 291};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
156
\node[draw=none] at (12.5, 2.8) {\large 94};
157
\node[draw=none] at (13.5, 3.1) {\large -792};
158
\node[draw=none] at (14.5, 3.4) {\large 0};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
159
160
% Result image (left to right, top to bottom)
161
% [[ -4 -254 -498 -662 -849 -642 -187]
162
\node[draw=none] at (16.5, 6.6) {\large -4};
163
\node[draw=none] at (17.5, 6.9) {\large -254};
164
\node[draw=none] at (18.5, 7.2) {\large -498};
165
\node[draw=none] at (19.5, 7.5) {\large -662};
166
\node[draw=none] at (20.5, 7.8) {\large -849};
167
\node[draw=none] at (21.5, 8.1) {\large -642};
168
\node[draw=none] at (22.5, 8.4) {\large 187};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
169
% [-520 45 240 211 388 215 -861]
170
\node[draw=none] at (16.5, 5.6) {\large-520};
171
\node[draw=none] at (17.5, 5.9) {\large 45};
172
\node[draw=none] at (18.5, 6.2) {\large 240};
173
\node[draw=none] at (19.5, 6.5) {\large 211};
174
\node[draw=none] at (20.5, 6.8) {\large 388};
175
\node[draw=none] at (21.5, 7.1) {\large 215};
176
\node[draw=none] at (22.5, 7.4) {\large-861};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
177
% [-340 559 -105 185 -138 -180 503]
178
\node[draw=none] at (16.5, 4.6) {\large -340};
179
\node[draw=none] at (17.5, 4.9) {\large 559};
180
\node[draw=none] at (18.5, 5.2) {\large -105};
181
\node[draw=none] at (19.5, 5.5) {\large 185};
182
\node[draw=none] at (20.5, 5.8) {\large -138};
183
\node[draw=none] at (21.5, 6.1) {\large -180};
184
\node[draw=none] at (22.5, 6.4) {\large 503};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
185
% [-718 429 350 173 251 268 -655]
186
\node[draw=none] at (16.5, 3.6) {\large -718};
187
\node[draw=none] at (17.5, 3.9) {\large 429};
188
\node[draw=none] at (18.5, 4.2) {\large 350};
189
\node[draw=none] at (19.5, 4.5) {\large 173};
190
\node[draw=none] at (20.5, 4.8) {\large 251};
191
\node[draw=none] at (21.5, 5.1) {\large 268};
192
\node[draw=none] at (22.5, 5.4) {\large -655};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
193
% [-567 -53 -75 80 571 -128 24]
194
\node[draw=none] at (16.5, 2.6) {\large -567};
195
\node[draw=none] at (17.5, 2.9) {\large -53};
196
\node[draw=none] at (18.5, 3.2) {\large -75};
197
\node[draw=none] at (19.5, 3.5) {\large 80};
198
\node[draw=none] at (20.5, 3.8) {\large 571};
199
\node[draw=none] at (21.5, 4.1) {\large -128};
200
\node[draw=none] at (22.5, 4.4) {\large 24};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201
% [-408 596 -550 368 26 976 156]
202
\node[draw=none] at (16.5, 1.6) {\large -408};
203
\node[draw=none] at (17.5, 1.9) {\large 596};
204
\node[draw=none] at (18.5, 2.2) {\large -550};
205
\node[draw=none] at (19.5, 2.5) {\large 368};
206
\node[draw=none] at (20.5, 2.8) {\large 26};
207
\node[draw=none] at (21.5, 3.1) {\large 976};
208
\node[draw=none] at (22.5, 3.4) {\large 156};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
209
% [ 302 647 879 223 811 54 660]]
210
\node[draw=none] at (16.5, 0.6) {\large 302};
211
\node[draw=none] at (17.5, 0.9) {\large 647};
212
\node[draw=none] at (18.5, 1.2) {\large 879};
213
\node[draw=none] at (19.5, 1.5) {\large 223};
214
\node[draw=none] at (20.5, 1.8) {\large 811};
215
\node[draw=none] at (21.5, 2.1) {\large 54};
216
\node[draw=none] at (22.5, 2.4) {\large 660};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
217
\end{tikzpicture}
218
219