กล่าวถึงแหล่งที่มาของการเชื่อมโยง"เปลี่ยนโหมดฟิวชั่นที่จะ <คูณ>"เพื่อให้การดำเนินงานที่จะทำไม่ได้เป็นค่าเฉลี่ยที่เรียบง่ายของการป้อนข้อมูล hillshades (นี้ยังเห็นวิธีการ gdal_hillshades เฉลี่ย? ) มันเป็นอย่างอื่น ยังมาสร้างเนินเขา 3 แบบที่แตกต่างกันกับแสงแดด:
gdaldem hillshade input.tif hillshades_A.tmp.tif -s 111120 -z 5 -az 315 -alt 60 -compute_edges
gdaldem hillshade input.tif hillshades_B.tmp.tif -s 111120 -z 5 -az 355 -alt 60 -compute_edges
gdaldem hillshade input.tif hillshades_C.tmp.tif -s 111120 -z 5 -az 275 -alt 60 -compute_edges
รักษาค่าต่ำสุดของ A, B, C
อัลกอริทึมแรกที่ฉันคิดเกี่ยวกับการกรองและรักษาพิกเซลที่มืดที่สุดหรือที่รู้จักว่าพิกเซลที่มีค่าต่ำกว่าระหว่างอินพุต A, B, CA บูลีนสามารถทำได้ดังนี้:
gdal_calc.py -A hillshades_A.tmp.tif -B hillshades_B.tmp.tif -C hillshades_C.tmp.tif --outfile=./hillshades_xl.tmp.tif \
--calc="(A*(A<=B)*(A<=C)+ B*(B<A)*(B<=C)+ C*(C<A)*(C<B))"
ตอนนี้พื้นที่ที่ถูกครอบงำด้วยเงาสร้างขึ้นมากกว่าด้านตรงข้ามของศูนย์กลางหนึ่งอันมันเพิ่มขึ้น40⁰ในแต่ละด้าน ไม่ใช่ลิงก์ที่ให้ไว้อัลกอริทึมปัจจุบันนี้ดูเหมือนว่าจะสูญเสียพื้นที่การรู้แจ้งมากเกินไป
Angle of 315±30⁰
(ความแปรปรวนของมุมที่เล็กกว่า) แทนที่จะกระแส315±40⁰
นั้นจะดีกว่า
แผนภาพด้านล่างเป็นพื้นฐานของสมการ มันแสดงแหล่งกำเนิดแสง A, B, C และ Boolean เปรียบเทียบค่าพิกเซล A, B, C ในแต่ละส่วน เส้นความเท่าเทียมกันจำเป็นต้องได้รับความสนใจเป็นพิเศษเพื่อรวมไว้ในบูลีน เส้นค่ามัธยฐานมีค่า221
สำหรับแหล่งกำเนิดแสงที่ตั้งฉาก ลองคิดถึงพื้นที่ที่มีอิทธิพลแหล่งกำเนิดแสงที่ใกล้ที่สุดคืออิทธิพลหลักและอิทธิพลที่อ่อนแอที่สุด
รักษาค่าสุดขั้วสำหรับ A, B, C
อัลกอริธึมบูลีนอื่นอาจรักษาค่าที่สูงที่สุดได้ทั้งพิกเซลที่มืดและขาว แผนภาพต่อไปนี้ช่วยเกี่ยวกับสูตรบูลีน ที่หกของวงกลมแต่ละจะระบุค่าที่จะเก็บจาก A, B, C และบูลีนในการเลือกพื้นที่สามเหลี่ยมรวมกับวงเงินตามเข็มนาฬิกาเสมอภาคและเพียงแค่นั้น มันให้ (จากด้านบนและตามเข็มนาฬิกา):
--calc="A*(A>B)*(A>=C) + C*(C>A)*(A>=221) + B*(C>A)*(C>=221) + A*(A<B)*(B<=221) + C*(B>A)*(A<=221) + B*(B>A)*(C<=221)"
หากการแปรผันของมุมนั้นไม่สำคัญเกินไปก็อาจให้ผลลัพธ์ที่ดีได้
Booleans อื่น ๆ
คุณสามารถสร้างบูลีนที่ซับซ้อนมากขึ้นเพื่อให้ครอบคลุมทั้งวงกลมโดยใช้การรวมกันของส่วนขอบ สิ่งสำคัญคือต้องเก็บค่าหนึ่งค่าจาก A, B, C ไว้สำหรับหนึ่งส่วน
คูณ
ฉันทำพยายามหลาย failledเพื่อmultiply
ค่าพิกเซลโดยไม่ต้องมีการพิสูจน์แล้วว่ามิได้สูตรความสำเร็จขั้นสุดท้าย @Radouxju ชี้ให้เห็นว่า(a*b*c)^(1/3)
(GEOMETRIC เฉลี่ย) แทนค่าเฉลี่ยของ(a*b*c)/(255*255)
การทำงานของเดือนพฤษภาคม ค่าเฉลี่ยทางเรขาคณิตต่ำกว่าหรือเท่ากับค่าเฉลี่ยเลขคณิตซึ่งเน้นความมืดของพื้นที่สีเทา ฉันยังไม่ได้ทดสอบ