@@ -16,10 +16,10 @@ \section{Sources of DEM}
16
16
17
17
\begin {quote }
18
18
\begin {verbatim }
19
- import piio
20
- x = piio .read("i/terrassa.tif")
19
+ import iio
20
+ x = iio .read("i/terrassa.tif")
21
21
X = (255.0 * (x - x.min())/(x.max() - x.min())).clip(0,255)
22
- piio .write("o/terrassa.png", X)
22
+ iio .write("o/terrassa.png", X)
23
23
\end {verbatim }
24
24
\includegraphics {o/terrassa.png}~\verb +terrassa.png +
25
25
\end {quote }
@@ -65,10 +65,10 @@ \section{DEM Rendering}
65
65
66
66
\begin {quote }
67
67
\begin {verbatim }
68
- import piio
69
- x = piio .read("i/fuji.tif")
68
+ import iio
69
+ x = iio .read("i/fuji.tif")
70
70
X = qauto(x)
71
- piio .write("o/fuji.png", X)
71
+ iio .write("o/fuji.png", X)
72
72
\end {verbatim }
73
73
\includegraphics {o/fuji.png}~\verb +fuji.png +
74
74
\end {quote }
@@ -136,12 +136,12 @@ \subsection{Hillshading}
136
136
And now we display the Fuji DEM using this function
137
137
138
138
139
- % import piio
139
+ % import iio
140
140
\begin {quote }
141
141
\begin {verbatim }
142
- x = piio .read("i/fuji.tif").squeeze()
142
+ x = iio .read("i/fuji.tif").squeeze()
143
143
X = render_shading(x)
144
- piio .write("o/fuji_shading.png", qauto(X) )
144
+ iio .write("o/fuji_shading.png", qauto(X) )
145
145
\end {verbatim }
146
146
\includegraphics {o/fuji_shading.png}~\verb +fuji_shading.png +
147
147
\end {quote }
@@ -190,9 +190,9 @@ \subsection{Hillshading}
190
190
191
191
\begin {quote }
192
192
\begin {verbatim }
193
- x = piio .read("i/fuji.tif").squeeze()
193
+ x = iio .read("i/fuji.tif").squeeze()
194
194
X = filter_riesz(render_shading(x), -0.5)
195
- piio .write("o/fuji_smooth.png", qauto(X) )
195
+ iio .write("o/fuji_smooth.png", qauto(X) )
196
196
\end {verbatim }
197
197
\includegraphics {o/fuji_smooth.png}~\verb +fuji_smooth.png +
198
198
\end {quote }
@@ -223,10 +223,10 @@ \subsection{Shadows}
223
223
\begin {quote }
224
224
\begin {verbatim }
225
225
# cast shadows over Fuji
226
- x = piio .read("i/fuji.tif").squeeze()
226
+ x = iio .read("i/fuji.tif").squeeze()
227
227
import demtk
228
228
z = demtk.render_shadows(x, (1,1,25))
229
- piio .write("o/fuji_shadows.png", qauto(z) )
229
+ iio .write("o/fuji_shadows.png", qauto(z) )
230
230
\end {verbatim }
231
231
\includegraphics {o/fuji_shadows.png}~\verb +fuji_shadows.png +
232
232
\end {quote }
@@ -258,7 +258,7 @@ \subsection{Ambient occlusion}
258
258
\begin {quote }
259
259
\begin {verbatim }
260
260
# coarse approximation of ambient occlusion
261
- x = piio .read("i/fuji.tif").squeeze()
261
+ x = iio .read("i/fuji.tif").squeeze()
262
262
z = 0*x
263
263
z += demtk.render_shadows(x, ( 1, 0, 25) )
264
264
z += demtk.render_shadows(x, ( 1, 1, 25) )
@@ -268,7 +268,7 @@ \subsection{Ambient occlusion}
268
268
z += demtk.render_shadows(x, (-1,-1, 25) )
269
269
z += demtk.render_shadows(x, ( 0,-1, 25) )
270
270
z += demtk.render_shadows(x, ( 1,-1, 25) )
271
- piio .write("o/fuji_aaaprox.png", qauto(z/8) )
271
+ iio .write("o/fuji_aaaprox.png", qauto(z/8) )
272
272
\end {verbatim }
273
273
\includegraphics {o/fuji_aaaprox.png}~\verb +fuji_aaaprox.png +
274
274
\end {quote }
@@ -278,7 +278,7 @@ \subsection{Ambient occlusion}
278
278
\begin {quote }
279
279
\begin {verbatim }
280
280
# coarse approximation of ambient occlusion
281
- x = piio .read("i/terrassa.tif").squeeze()
281
+ x = iio .read("i/terrassa.tif").squeeze()
282
282
z = 0*x
283
283
z += demtk.render_shadows(x, ( 1, 0, 2) )
284
284
z += demtk.render_shadows(x, ( 1, 1, 2) )
@@ -288,7 +288,7 @@ \subsection{Ambient occlusion}
288
288
z += demtk.render_shadows(x, (-1,-1, 2) )
289
289
z += demtk.render_shadows(x, ( 0,-1, 2) )
290
290
z += demtk.render_shadows(x, ( 1,-1, 2) )
291
- piio .write("o/terrassa_aaaprox.png", qauto(z/8) )
291
+ iio .write("o/terrassa_aaaprox.png", qauto(z/8) )
292
292
\end {verbatim }
293
293
\includegraphics {o/terrassa_aaaprox.png}~\verb +terrassa_aaaprox.png +
294
294
\end {quote }
@@ -307,9 +307,9 @@ \subsection{Ambient occlusion}
307
307
\begin {quote }
308
308
\begin {verbatim }
309
309
# linear approximation of ambient occlusion
310
- x = piio .read("i/terrassa.tif").squeeze()
310
+ x = iio .read("i/terrassa.tif").squeeze()
311
311
z = filter_riesz(x, 1)
312
- piio .write("o/terrassa_aalin.png", qauto(z.clip(-1000,0)) )
312
+ iio .write("o/terrassa_aalin.png", qauto(z.clip(-1000,0)) )
313
313
\end {verbatim }
314
314
\includegraphics {o/terrassa_aalin.png}~\verb +terrassa_aalin.png +
315
315
\end {quote }
@@ -329,7 +329,7 @@ \subsection{Color palette}
329
329
\begin {quote }
330
330
\begin {verbatim }
331
331
# read palette from file
332
- img_terrain = piio .read("i/DEM_poster.png")
332
+ img_terrain = iio .read("i/DEM_poster.png")
333
333
pal_terrain = img_terrain[0][0:256]
334
334
\end {verbatim }
335
335
\includegraphics {i/DEM_poster.png}~\verb +DEM_poster.png +
@@ -338,9 +338,9 @@ \subsection{Color palette}
338
338
\begin {quote }
339
339
\begin {verbatim }
340
340
# apply palette to DEM
341
- x = piio .read("i/fuji.tif").squeeze()
341
+ x = iio .read("i/fuji.tif").squeeze()
342
342
X = pal_terrain[qauto(x)]
343
- piio .write("o/fuji_palette.png", X )
343
+ iio .write("o/fuji_palette.png", X )
344
344
\end {verbatim }
345
345
\includegraphics {o/fuji_palette.png}~\verb +fuji_palette.png +
346
346
\end {quote }
@@ -361,9 +361,9 @@ \subsection{Color palette}
361
361
\begin {quote }
362
362
\begin {verbatim }
363
363
# render a urban DEM using a "terrain" palette
364
- x = piio .read("i/terrassa.tif").squeeze()
364
+ x = iio .read("i/terrassa.tif").squeeze()
365
365
X = pal_terrain[qauto(x)]
366
- piio .write("o/terrassa_pal.png", X )
366
+ iio .write("o/terrassa_pal.png", X )
367
367
\end {verbatim }
368
368
\includegraphics {o/terrassa_pal.png}~\verb +terrassa_pal.png +
369
369
\end {quote }
@@ -378,12 +378,12 @@ \subsection{Color palette}
378
378
379
379
\begin {quote }
380
380
\begin {verbatim }
381
- x = piio .read("i/fuji.tif").squeeze()
381
+ x = iio .read("i/fuji.tif").squeeze()
382
382
from numpy import newaxis
383
383
x_lam = qauto(render_shading(x))[:,:,newaxis] # lambertian shading of x
384
384
x_pal = pal_terrain[qauto(x)] # color palette of x
385
385
X = qauto(x_lam**.8 * x_pal) # combination (geometric mean)
386
- piio .write("o/fuji_combined.png", X)
386
+ iio .write("o/fuji_combined.png", X)
387
387
\end {verbatim }
388
388
\includegraphics {o/fuji_combined.png}~\verb +fuji_combined.png +
389
389
\end {quote }
@@ -406,16 +406,16 @@ \subsection{Curvature map}
406
406
\begin {quote }
407
407
\begin {verbatim }
408
408
from numpy import fmax, dstack
409
- x = piio .read("i/fuji.tif").squeeze()
409
+ x = iio .read("i/fuji.tif").squeeze()
410
410
r = filter_riesz(x, 1)
411
411
x_signed = qauto(r)
412
412
x_ridges = 2.0*qauto(fmax(0,r)).clip(0,255)
413
413
x_valleys = 255-2.0*qauto(fmax(0,-r)).clip(0,255)
414
414
x_curv = dstack([x_valleys, x_valleys-x_ridges, 255.0-x_ridges])
415
- piio .write("o/fuji_signed.png" , x_signed )
416
- piio .write("o/fuji_ridges.png" , x_ridges )
417
- piio .write("o/fuji_valleys.png", x_valleys )
418
- piio .write("o/fuji_curv.png", x_curv )
415
+ iio .write("o/fuji_signed.png" , x_signed )
416
+ iio .write("o/fuji_ridges.png" , x_ridges )
417
+ iio .write("o/fuji_valleys.png", x_valleys )
418
+ iio .write("o/fuji_curv.png", x_curv )
419
419
\end {verbatim }
420
420
\includegraphics {o/fuji_signed.png}~\verb +fuji_signed.png +
421
421
\includegraphics {o/fuji_ridges.png}~\verb +fuji_ridges.png +
@@ -434,10 +434,10 @@ \subsection{Curvature map}
434
434
%
435
435
% # render urban scene with sign of a Riesz filter
436
436
% from numpy import uint8
437
- % x = piio .read("i/terrassa.tif").squeeze()
437
+ % x = iio .read("i/terrassa.tif").squeeze()
438
438
% t = filter_riesz(x, 1)
439
439
% T = (127.5 + 60 * t / t.std()).clip(0.255).astype(uint8)
440
- % piio .write("o/terrassa_curv.png", pal_blue_yellow[T] )
440
+ % iio .write("o/terrassa_curv.png", pal_blue_yellow[T] )
441
441
% \end{verbatim}
442
442
% \includegraphics{o/terrassa_curv.png}~\verb+terrassa_curv.png+
443
443
% \end{quote}
@@ -451,12 +451,12 @@ \subsection{Combined rendering}
451
451
452
452
\begin {quote }
453
453
\begin {verbatim }
454
- import demtk, piio
455
- x = piio .read("i/terrassa.tif").squeeze()
456
- piio .write("o/terrassa_full.png", demtk.render(x))
454
+ import demtk, iio
455
+ x = iio .read("i/terrassa.tif").squeeze()
456
+ iio .write("o/terrassa_full.png", demtk.render(x))
457
457
458
- x = piio .read("i/fuji.tif").squeeze()
459
- piio .write("o/fuji_full.png", demtk.render(x))
458
+ x = iio .read("i/fuji.tif").squeeze()
459
+ iio .write("o/fuji_full.png", demtk.render(x))
460
460
\end {verbatim }
461
461
\includegraphics {o/terrassa_full.png}~\verb +terrassa_full.png +
462
462
\includegraphics {o/fuji_full.png}~\verb +fuji_full.png +
@@ -468,12 +468,12 @@ \section{DEM Denoising}
468
468
469
469
\begin {quote }
470
470
\begin {verbatim }
471
- import demtk, piio
472
- x = piio .read("i/terrassa.tif").squeeze()
473
- piio .write("o/terrassa_erosion.png", demtk.render(demtk.cross_erosion(x)))
474
- piio .write("o/terrassa_dilation.png", demtk.render(demtk.cross_dilation(x)))
475
- piio .write("o/terrassa_median.png", demtk.render(demtk.cross_median(x)))
476
- piio .write("o/terrassa_median5.png", demtk.render(demtk.cross_median(x,5)))
471
+ import demtk, iio
472
+ x = iio .read("i/terrassa.tif").squeeze()
473
+ iio .write("o/terrassa_erosion.png", demtk.render(demtk.cross_erosion(x)))
474
+ iio .write("o/terrassa_dilation.png", demtk.render(demtk.cross_dilation(x)))
475
+ iio .write("o/terrassa_median.png", demtk.render(demtk.cross_median(x)))
476
+ iio .write("o/terrassa_median5.png", demtk.render(demtk.cross_median(x,5)))
477
477
\end {verbatim }
478
478
\includegraphics {o/terrassa_erosion.png}~\verb +terrassa_erosion.png +
479
479
\includegraphics {o/terrassa_dilation.png}~\verb +terrassa_dilation.png +
@@ -482,10 +482,10 @@ \section{DEM Denoising}
482
482
483
483
% \begin{quote}
484
484
% \begin{verbatim}
485
- % import demtk, piio
486
- % x = piio .read("i/fuji.tif").squeeze()
487
- % piio .write("o/fuji_erosion.png", demtk.render(demtk.cross_erosion(x)))
488
- % piio .write("o/fuji_dilation.png", demtk.render(demtk.cross_dilation(x)))
485
+ % import demtk, iio
486
+ % x = iio .read("i/fuji.tif").squeeze()
487
+ % iio .write("o/fuji_erosion.png", demtk.render(demtk.cross_erosion(x)))
488
+ % iio .write("o/fuji_dilation.png", demtk.render(demtk.cross_dilation(x)))
489
489
% \end{verbatim}
490
490
% \includegraphics{o/fuji_erosion.png}~\verb+fuji_erosion.png+
491
491
% \includegraphics{o/fuji_dilation.png}~\verb+fuji_dilation.png+
0 commit comments