สรุป
ชุดของ 3 ภาพด้านล่างแต่ละคนควรจะอ่านเช่น"สีเทา (วงดนตรี) + ความทึบแสง (วงดนตรี) = ผลโปร่งใส" คุณสามารถทดสอบกระบวนการเหล่านี้ภายในไม่กี่นาทีผ่านที่เกี่ยวข้องGitHub เจ้าภาพ Makefile กระบวนการ# 3คือสิ่งที่ฉันแนะนำโดยมีขีด จำกัด ระหว่าง 170 (รักษาเงาที่แข็งแกร่ง) และ 220 (รักษาเงาทั้งหมด) กระบวนการ 3 ให้เงาที่แข็งแกร่งที่สุดและหลีกเลี่ยงเอฟเฟกต์สีเทา - ขาว ปรับความทึบแสงโดยรวมของชั้นผลลัพธ์ตามต้องการ สมการในอาจจะดีขึ้นตามความจำเป็นเช่นกันโดยใช้--calc="<equation>"
gdal_calc
สำหรับวิดีโอที่วางไว้บนวิธีการนี้อธิบายโดยนักออกแบบ Photoshop ดูที่การเพิ่ม Shaded Relief ใน Photoshop (16 นาที)
พื้นหลัง
gdaldem hillshade
สร้างไฟล์สเกลสีเทาแบนด์หนึ่งช่วงค่าพิกเซล = [1-255], aka จากเงาที่มืดที่สุดไปจนถึงพิกเซลที่ให้ความกระจ่างมากที่สุด สำหรับพื้นที่ราบ px = 221 (#DDDDDD) NoDataValue
พิกเซลได้รับการเริ่มต้น nodatavalue ยังดำมืดที่สุดในการป้อนข้อมูลและในการส่งออกและคุณควรจะเป็น0
1
กับวงดนตรีทึบไม่มีกำหนดความทึบ 100%
gdaldem hillshade input.tif hillshade.tmp.tif -s 111120 -z 5 -az 315 -alt 60 -compute_edges
เราต้องการที่จะกำหนดและควบคุมวงทึบที่สอง!
วัตถุประสงค์
เราต้องการวงสีเทาหนึ่งวง -b 1
มันเป็นเนินเขา จาก gdal เป็นแถบสีเทาที่มีช่วงต่อเนื่องเช่น px = [1-255] เราสามารถครอบตัดพื้นที่ที่ไม่เกี่ยวข้อง (# 2) หรือทำให้ดำคล้ำเป็น px = 1 และพึ่งพาวงทึบ (# 3)
เราต้องการวงทึบหนึ่งวง -b 2
โดยทั่วไปจะเป็นทางกลับของเนินเขาหรือฟังก์ชั่นที่เกี่ยวข้อง เราสามารถครอบตัดพื้นที่ที่ไม่เกี่ยวข้องออกไป (# 2) มันจะต้องเป็นช่วงที่ต่อเนื่องของ opacities เช่น px = [1-255] อื่น ๆ ซึ่งไม่มีความสง่างาม
gdal_calc
สามารถใช้เพื่อทำคณิตศาสตร์กับพิกเซลจากไฟล์อินพุต A, B, C ... และตรวจสอบค่าบูลีนเช่นA<220
ซึ่งจะส่งกลับ 1 (จริง) หรือ 0 (เท็จ) อนุญาตให้มีเงื่อนไขแคลคูลัส หากเงื่อนไขเป็นเท็จส่วนที่เกี่ยวข้องของสมการจะถูกลบล้าง
1. เนินเขาสีเทาโปร่งใส
ต่อไปนี้ให้ผลลัพธ์สองวงที่ดีมากด้วยgdal hillshade
สีเทามาตรฐานและพื้นที่สีขาวที่ทำให้โปร่งใสมากขึ้น:
# 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. การเพิ่มประสิทธิภาพผ่านทางหลอกพืช (-b 1 & -b 2)
2/3 ของพิกเซลบน-b 1
(เฉดสีเทา) จะมองไม่เห็นด้วยตาเปล่าเมื่อ-b 2
เพิ่มความทึบแต่พิกเซลเหล่านี้ยังคงความขาว-b 1
และ-b 2
ค่าความทึบต่ำต่าง ๆ พวกเขาสามารถทำให้[255,1]
พิกเซลโปร่งใสสีขาวทั้งหมดให้อัตราการบีบอัดที่ดีกว่า:
# 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. การเพิ่มประสิทธิภาพ -b 1 เพิ่มเติม (ครอบตัด + ดำลง)
เนื่องจากเรามีความทึบแสงวงโปรเกรสซีฟ-b 2
ที่จะพึ่งพาเราสามารถทำให้-b 1
พิกเซลทั้งพิกเซลสีขาว = 255 ผ่าน255*(A>220)
หรือพิกเซลสีดำ = 1 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
ผลที่ได้นี้แสดงให้เห็นเงาแข็งแกร่ง
ผล
สร้างฮิลล์เชดแบบโปร่งใสนั้นมีวัตถุประสงค์เพื่อกำจัดพื้นที่สีเทาในอดีตและความสัมพันธ์ที่มีผลต่อการซีดจางสีเทาที่ไม่ต้องการ แต่แพร่หลาย ผลพลอยได้ที่ต้องการคือการควบคุมที่เพิ่มขึ้นของผลิตภัณฑ์ภาพสุดท้าย กระบวนการที่อธิบายเอาพิกเซลสีเทาและขาวออกเกือบทั้งหมด ภาพพื้นหลังที่มีสีสันสดใสจะคงสีที่เลือกไว้เมื่อซ้อนทับด้วยเนินเขาที่ใสเป็นสีดำเฉพาะพื้นที่ที่เป็นเงาเท่านั้นที่จะมืด การเปรียบเทียบกระบวนการ # 2 (ซ้าย) และ # 3 (ขวา) ด้านล่าง
ภาพรวม:
ซูมโปรดสังเกตเงา (ก่อนและหลัง):
การเพิ่มประสิทธิภาพเพิ่มเติม
พื้นที่สีขาว : หนึ่งอาจต้องการให้พื้นที่ที่รู้แจ้งมากที่สุดเพื่อเพิ่มความรู้สึก 3D มันจะเป็นสมมาตรของวิธีการปัจจุบันนี้โดยมีการเปลี่ยนแปลงเกณฑ์เล็กน้อยจากนั้นจึงรวมเอาท์พุททั้งสองผ่าน gdal_calc ที่ราบจะโปร่งใส 100% เงาที่มืดที่สุดและความสว่างของพื้นที่สว่าง
การปรับให้เรียบ:อินพุตฮิลล์เชดอาจถูกทำให้ราบเรียบล่วงหน้าเพื่อให้ได้ผลลัพธ์ที่ดีขึ้นดูที่การปรับDEM โดยใช้ GRASS?
คอมโพสิตฮิลล์เชด ( วิธีสร้างฮิลล์คอมโพสิต? )
กระแทกบนเนินเขาที่น่าสนใจเช่นกัน ( คำอธิบาย )
หมายเหตุ
- เกณฑ์พื้นที่ราบใน
gdal hillshade
การส่งออกเป็นพิกเซล = 221 (#DDDDDD = [221221221]), การทำเครื่องหมายพื้นที่ราบ นอกจากนี้ px = 221 ของ hillshade ยังแบ่งภาพระหว่างความลาดชันในเงา (A <221) และความลาดชันในแสง (A> 221) พิกเซล
- เกณฑ์การประมวลผลที่ px = [170-220] เช่นการพิสูจน์ที่ดีจะช่วยให้ใกล้ 100% ของเงาตาที่เห็นได้ชัดซึ่งตัวเองแทบจะไม่ยืนสำหรับ 15-35% ของพื้นที่โล่งอก
- ขนาดไฟล์> การบีบอัด: final.tif จาก # 1, # 2, # 3 คือ ~ 1.3MB โดยไม่มีการบีบอัดจากนั้น ~ 0.3-0.16MB หลังจากการบีบอัดประหยัด 80%!
- ขนาดไฟล์> การครอบตัด:จาก. 326KB ใน # 1, ครอบตัดสี & ความทึบ (# 2) ไปที่ 310kb, กลายเป็นสีดำ (# 3) ถึง 160kb ผลการปลูกพืชบนขนาดไฟล์อยู่ระหว่างการลดลง 5 ~ 50% ด้วยขีด จำกัด ที่ px = 220 และอินพุตของฉัน