fındık kabuğu
Aşağıdaki 3 görüntünün her biri "gri (bant) + opaklık (bant) = saydam sonuç" gibi okunmalıdır . Bu işlemleri dakikalar içinde ilişkili github barındırılan makefile üzerinden test edebilirsiniz . İşlem 3 , önerdiğim, 170 (güçlü gölgeleri koruyor) ile 220 (tüm gölgeleri koruyor) arasındaki eşik değeri. İşlem 3, en güçlü gölgeleri sağlar ve grileşme-beyazlatma etkisinden kaçınır . Ortaya çıkan katmanın genel opaklığını gerektiği gibi uyarlayın. İçeriğindeki denklemler, --calc="<equation>"
gerektiği şekilde de geliştirilebilir gdal_calc
.
Bir Photoshop tasarımcısı tarafından açıklanan bu yaklaşımla ilgili geri çekilmiş bir video için, bkz . Photoshop'ta Gölgeli Rölyef Ekleme (16mins).
Arka fon
gdaldem hillshade
en koyu gölgelerden en aydınlatıcı piksele kadar, aralık aralığı [[1-255], piksel değerleri olan bir bant gri ölçek dosyası oluşturur. Düz alanlar için, px = 221 (#DDDDDD). NoDataValue
pikseller varsayılan notata sahip olurlar 0
, ayrıca girdi ve çıktıdaki en koyu siyahtır ve olmalıdır 1
. Hiçbir opaklık bandı tanımlanmadığında, opaklık% 100'dür .
gdaldem hillshade input.tif hillshade.tmp.tif -s 111120 -z 5 -az 315 -alt 60 -compute_edges
2. opaklık bandını tanımlamak ve kontrol etmek istiyoruz!
Hedefler
Bir gri tonlamalı grup istiyoruz -b 1
, orası gölgelik. Gdal dışında px = [1-255] gibi sürekli aralıklı gri bir banttır. İlgili olmayan alanları (# 2) kesebilir veya onu px = 1'e göre karartıp opaklık bandına (# 3) güvenebiliriz.
Biz istiyoruz bir donukluk bandı -b 2
, genellikle DEM ait invert veya ilgili bir fonksiyonu. İlgili olmayan alanları mahvedebiliriz (# 2). Bu, px = [1-255] gibi sürekli bir opasite aralığı olmalıdır, aksi halde zerafet yoktur.
gdal_calc
hem A, B, C ... giriş dosyalarından pikseller üzerinde matematik yapmak hem de A<220
1 (true) veya 0 (false) döndüren gibi boolean değerleri kontrol etmek için kullanılabilir . Bu şartlı hesabı sağlar. Koşul yanlışsa, denklemin ilgili kısmı geçersiz kılınır.
1. Gri hillshade şeffaf yaptı
Aşağıdakiler, standart gdal hillshade
gri tonlar ve gittikçe saydam hale getirilen beyaz alanlarla çok iyi bir iki bantlı sonuç sağlar :
# hillshade px=A, opacity is its invert: px=255-A
gdal_calc.py -A ./hillshade.tmp.tif --outfile=./opacity.tif --calc="255-A"
# assigns to relevant bands -b 1 and -b 2
gdalbuildvrt -separate ./final.vrt ./hillshade.tmp.tif ./opacity.tif
2. Sözde mahsulle optimizasyon (-b 1 & -b 2)
-b 1
Opaklık -b 2
eklendiğinde piksellerin 2 / 3'ü (gri tonlamalı) çıplak gözle görünmez hale gelir , ancak bu pikseller çeşitli daha beyaz -b 1
ve düşük opaklık -b 2
değerlerini korur . Daha [255,1]
iyi bir sıkıştırma oranı sağlamak için tüm beyaz şeffaf pikseller yapılabilir :
# filter the color band, keep greyness of relevant shadows below limit
gdal_calc.py -A ./hillshade.tmp.tif --outfile=./color_crop.tmp.tif \
--calc="255*(A>220) + A*(A<=220)"
# filter the opacity band, keep opacity of relevant shadows below limit
gdal_calc.py -A ./hillshade.tmp.tif --outfile=./opacity_crop.tmp.tif \
--calc=" 1*(A>220) +(256-A)*(A<=220)"
# gdalbuildvrt -separate ./final.vrt ./color_crop.tmp.tif ./opacity_crop.tmp.tif
# gdal_translate -co COMPRESS=LZW -co ALPHA=YES ./final.vrt ./final_crop.tif
3. Daha fazla -b 1 optimizasyonu (kırpma + karalamak)
Güvenebileceğiniz ilerici bir opaklık bandımız -b 2
olduğundan, -b 1
pikselleri beyaz px = 255 ile 255*(A>220)
veya siyah px = 1 ile yapabiliriz 1*(A>220)
.
gdal_calc.py -A ./hillshade.tmp.tif --outfile=./color.tmp.tif \
--calc="255*(A>220) + 1*(A<=220)"
# gdal_calc.py -A ./hillshade.tmp.tif --outfile=./opacity_crop.tmp.tif \
# --calc=" 1*(A>220) +(256-A)*(A<=220)".
# gdalbuildvrt -separate ./final.vrt ./color.tmp.tif ./opacity_crop.tif
# gdal_translate -co COMPRESS=LZW -co ALPHA=YES ./final.vrt ./final.tif
Bu sonuç, daha güçlü gölgeler göstermektedir .
Sonuç
Saydam bir tepe gölgesi oluşturmak, düzlüğün eski gri alanlarını ve ilişkili istenmeyen ancak her yerde bulunan solma-solma etkisini ortadan kaldırmak için hemen bir hedefe sahiptir . İstenen yan ürün nihai görsel ürün üzerinde daha fazla kontrol sahibi. Açıklanan işlem çoğu gri ve tüm beyaz pikselleri kaldırır. Renkli arka plan düz görüntüsü, saydamdan siyaha tepe tonları tarafından bindirildiğinde seçilen renklerini koruyacak, yalnızca gölgeli alanlar kararacaktır. # 2 (solda) ve # 3 (sağda) işlemlerinin karşılaştırılması.
Genel bakış:
Zum, lütfen gölgeleri fark et (en önce vs sonra):
Daha fazla optimizasyon
Beyaz alanlar : 3D hisleri arttırmak için en aydınlanmış bölgeleri de tutmak isteyebilirsiniz. Kelimenin tam anlamıyla bu mevcut yaklaşımın küçük eşik değişimleriyle simetrik olması, ardından her iki çıkışın bir gdal_calc aracılığıyla birleştirilmesi olacaktır. Ova% 100 şeffaf, en karanlık gölgeler ve en aydınlık alanları opak yapacaktır.
Düzeltme: Daha iyi bir sonuç elde etmek için giriş tepe gölgesi önceden düzeltilebilir, bkz. GRASS ile DEM'in pürüzsüzleştirilmesi ?
Kompozit tepe gölgesi ( Kompozit tepe gölgesi nasıl oluşturulur? ).
Kabarık tepe gölgesi de ilginçtir ( anlatma )
notlar
- Düzlük eşiği olarak
gdal hillshade
çıkış düz alanları işaretleme, px = 221 (#dddddd = [221.221.221]) 'dir. Ayrıca, tepe gölgesinin px = 221 görüntüleri, gölgeleri eğimli (A <221) ve ışık eğimleri (A> 221) pikselleri arasında böler.
- Px = [170-220] 'deki bir işlem eşiği , iyi olduğu kanıtlanmış, göze çarpan gölgelerin% 100'üne yakındır ve bu, kabartma alanın% 15-35'ine zar zor durur.
- Dosya boyutu> Sıkıştırma: final.tif # 1, # 2, # 3 tanesi sıkıştırılmadan ~ 1.3MB, sonra sıkıştırmadan sonra ~ 0.3-0.16MB,% 80 tasarruf!
- Dosya boyutu> kırpma: # 1 .326KB'den kırpma rengi ve opaklığı (# 2) 310 kb'ye, karartma rengi (# 3) 160 kb'ye kadar. Dosya boyutunda kırpma efekti, px = 220'de eşik değerinde% 5 ile% 50 arasında azalma ve girişim arasındadır.