GRASS में पैन-शार्प लैंडसैट चित्रों की झूठी-कंपोजिट को कलर-बैलेंस कैसे करें?


9

जब भी मैं GRASS का उपयोग करते हुए i.pansharpen, i.fusion.broveyया IHS को तेज करने की विधि में कुछ लैंडसैट चित्रों के कंपोजिट पैन करने की कोशिश करता हूं , तो आउटपुट में कुछ या सभी निम्नलिखित विशेषताएं होंगी:

  • संयुक्त रंग संयुक्त राष्ट्र में तेज धार वाले समग्र की तुलना में एक अलग रंग में है
  • चमक स्तर गड़बड़ है
  • संपूर्ण समग्र ऑल-व्हाइट / ऑल-ब्लैक गया (जब छवियों का उपयोग पूर्व-वायुमंडल परावर्तन या सतह परावर्तन सुधार के लिए पूर्व-संसाधित किया गया i.landsat.toar)

मैंने निम्नलिखित में से सभी को आज़माया है ; लेकिन रंग / चमक समान रहे या और भी बदतर बने:

  • i.landsat.rgbपैन-शार्पनिंग प्रक्रिया के पहले और बाद में लागू किया जाता है
  • में -fया -pध्वज के साथ खेला जाता हैi.landsat.rgb
  • r.colorsग्रे / ग्रे 255 / ग्रे.इक के लिए रंग तालिका को संपादित करने की कोशिश की
  • i.pansharpenसभी Brovey / IHS / PCA विधियों का उपयोग करने की कोशिश की
  • ब्लू-चैनल के असंतुलन के लिए -lध्वज के साथ खेला गयाi.pansharpen

घास जीआईएस मैनुअल कैसे अखिल शार्पनिंग और रंग-संतुलन प्रदर्शन करने पर समझाया था, लेकिन मैं समझ नहीं कैसे एक समवर्ती कार्यप्रवाह में दोनों प्रक्रियाओं गठबंधन करने के लिए। मुझे संदेह था कि यह GRASS में रंग-तालिकाओं, रंग-हिस्टोग्राम, आदि की मेरी खराब समझ के कारण है।

तो, क्या कोई मुझे समझा सकता है - आप GRASS में इमेज-प्रोसेसिंग के बाद लैंडसैट छवियों से निपटने के दौरान रंग-संतुलन की समस्याओं से कैसे निपटते हैं? क्या आप अपने पसंदीदा वर्कफ़्लो / तरीकों को मेरे साथ साझा कर सकते हैं?

किसी भी प्रतिक्रिया के लिए बहुत धन्यवाद!

जवाबों:


6

अवलोकन

पान-शार्पनिंग के बाद स्वीकार्य रंग-संतुलित समग्र छवि प्राप्त करने के लिए GRASS-GIS संस्करण 7 के अंदर एक कामकाजी दृष्टिकोण

  1. जाँच करें कि इनपुट डेटा 8-बिट के अंदर है [0, 255]
  2. यदि डेटा [0, 255] के अंदर है तो पैन-शार्पनिंग के लिए आगे बढ़ें (i.pansharpen ) में
  3. यदि डेटा [0, 255] के अंदर नहीं है, तो उन्हें इस श्रेणी में पुनः भेजें (r.rescale )
  4. किसी भी विशेष विधि के साथ पैन-पैनापन (Brovey, IHS, PCA)
  5. i.landsat.rgbमॉड्यूल के उपयोग से रंग-संतुलन स्वचालित रूप से या ब्याज के बैंड के रंग तालिकाओं को मैन्युअल रूप से समायोजित करता है

विवरण और उदाहरण निर्देश

पैन-शार्पनिंग / फ्यूजन

GRASS 7 में एक समर्पित पैन-शार्पनिंग मॉड्यूल है, i.pansharpenजो कि शार्पनिंग के लिए तीन तकनीकों की सुविधा देता है, जैसे कि ब्रोवे ट्रांसफॉर्मेशन , शास्त्रीय IHS विधि और एक जो PCA पर आधारित है ।

i.pansharpenइनपुट के रूप में 8-बिट रेखापुंज मानचित्र के साथ ठीक काम करता है। यदि संसाधित किए जाने वाले डेटा इस सीमा से बाहर हैं, जो बाहर है [0, 255], तो उन्हें GRASS ' r.rescaleमॉड्यूल का उपयोग करके इस सीमा में फिट होने के लिए फिर से जोड़ा जा सकता है ।

11-बिट स्पेक्ट्रल बैंड (उदाहरण के लिए ब्लू, ग्रीन, रेड, NIR और पैन) के एक सेट को देखते हुए [0, 2047], उदाहरण के लिए ब्लू बैंड को क्वेरी करते हुए वापस आ जाएगा

r.info Blue_DNs -r
min=0
max=2047

बीच में रेंज करने के लिए ब्लू बैंड को रीसेट करना [0, 255]

r.rescale in=Blue_DNs out=Blue_DNs_255 from=0,2047 to=0,255

बाकी मल्टी-स्पेक्ट्रल बैंड और पंचक्रोमाटिक बैंड ऑफ इंटरेस्ट दोनों के लिए भी यही कदम लागू होता है।

हमेशा की तरह जब GRASS के साथ काम करना हो, तो ब्याज के क्षेत्र को सेट करना आवश्यक है, अर्थात g.regionrast=Blue_DNs_255 की सीमा बैंड (एस) की सीमा से मेल खाने के लिए। मॉड्यूल द्वारा विशेष रूप से इस मामले में रिज़ॉल्यूशन का ध्यान रखा जाता है और परिणामस्वरूप पैन-शार्प रस्टर मैप्स पंचरोमेटिक बैंड के समान उच्च (एर) रिज़ॉल्यूशन के होंगे।

IHS- आधारित पैन-शार्पनिंग कार्रवाई के लिए एक उदाहरण कमांड की तरह लग सकता है

i.pansharpen pan=Pan_DNs_255 ms1=Blue_DNs_255 ms2=Green_DNs_255 ms3=Red_DNs_255 output=sharptest255 sharpen=ihs

रंग संतुलन

प्रक्रिया पूरी होने के बाद, मॉड्यूल आउटपुट करता है

...
The following pan-sharpened output maps have been generated:
sharptest255_red
sharptest255_green
sharptest255_blue

To visualize output, run: g.region -p rast=sharptest255.red
d.rgb r=sharptest255_red g=sharptest255_green b=sharptest255_blue

आम तौर पर उदाहरण के लिए i.landsat.rgb का उपयोग करके पैन-शार्पनिंग के बाद रंगों को फिर से संतुलित करने के लिए पर्याप्त होना चाहिए मॉड्यूल या तीन बैंडों में से प्रत्येक के मैनुअल समायोजन का जो एक आरजीबी छवि की रचना करेगा।

स्क्रीनशॉट

... जोड़ा जाना


मुझे पता था कि एक बेहतर तरीका होना चाहिए! अब मैं स्वतंत्र रूप से i.sharpen मॉड्यूल का उपयोग कर सकता हूं। R.rescale मॉड्यूल को इंगित करने के लिए धन्यवाद। बहुत बढ़िया काम निकोस!

हज़ीक, मुझे यकीन नहीं है कि 11-बिट डेटा सेट को 8-बिट में कनवर्ट करते समय "ठीक" विवरण का कितना और कैसे खो जाता है। QuickBird इमेजरी, उदाहरण के लिए, एक 11-बिट सेंसर है। वे 8-बिट और 16-बिट दोनों स्वरूपों में उपलब्ध हैं। यह उपयोगकर्ता पर निर्भर है कि उसे क्या करना है। i.pansharpenसभी प्रकार के प्रारूपों को संभालना निश्चित रूप से अच्छा होगा । कृपया संबंधित "टिकट" पर एक नज़र डालें: टिकट # 2048: i.pansharpen 8-बिट इमेजरी तक सीमित । दूसरी ओर, मैं बस सामान को नहीं समझ सकता हूँ और इस प्रकार, i.pansharpen का उपयोग ठीक से नहीं कर पा रहा हूँ ...?
निकोस एलेक्जेंड्रिस

7

मैंने उच्च और निम्न खोज की है, और मुझे लगता है कि मैंने अपनी समस्याओं की जड़ खोज ली है। मेरा मानना ​​है कि मुझे अब उनके लिए समाधान मिल गया है - लेकिन यह थोड़ा गड़बड़ है। मुझे यकीन है कि उन्हें हल करने के बेहतर तरीके हैं। यदि आप एक आसान तरीका जानते हैं तो साझा करें!

समस्याओं की जड़ें:

  1. का आउटपुट i.landsat.toar फ्लोटिंग पॉइंट में है । मैंने महसूस किया है कि जब मैं किसी भी पैन-शार्पनिंग विधि में फ्लोटिंग पॉइंट रस्टर्स का उपयोग करता हूं, तो रंग गड़बड़ हो जाएंगे। उन एल्गोरिथ्म ने किसी तरह मूल पूर्णांक रूप में चूहों को प्राथमिकता दी।
  2. पैन-शार्पनिंग मॉड्यूल जैसे कि i.pansharpen और i.fusion.brovey मॉड्यूल रंगों को गड़बड़ कर देंगे । मैंने उन मॉड्यूल में उपयोग किए गए एल्गोरिदम को बहुत समझ नहीं लिया है - लेकिन किसी भी तरह रंग-टेबल प्रभावित होंगे, और परिणामस्वरूप पैन-शार्प इमेज को बर्बाद कर देंगे।

समाधान:

  1. उपयोग से फ्लोट से इंट में आउटपुट कन्वर्ट करेंi.landsat.toar r.recode
  2. आईएचएस पैन-शार्पनिंग विधि ( i.rgb.hisऔर i.his.rgb) में इनपुट के रूप में रस्टर्स का उपयोग करें । मैं का उपयोग कर से दूर रखने i.pansharpenऔर i.fusion.brovey

काम:

  1. प्रत्येक रास्टर बैंड के डीएन मिन और अधिकतम मूल्यों को प्राप्त करने के लिए ध्वज के r.info साथ उपयोग करें, जिसके साथ संसाधित किया गया है । उदाहरण के लिए:-r i.landsat.toar

    > r.info -r BAND1
    min=0.01
    max=0.370064120902708
    

    जैसा कि हम देख सकते हैं, मान 0-1 के बीच हैं, जो मूल लोगों की तुलना में बहुत अलग हैं (जो 0-255 के बीच हैं)। यह बताता है कि पैन-शार्पनिंग से आउटपुट रिक्त क्यों निकला, क्योंकि प्रयुक्त रेंज-ऑफ-वैल्यू बहुत कम है (1 से नीचे)।

  2. उस रेखापुंज बैंड का उपयोग करके परिवर्तित करें r.recode । 0-255 की नई रेंज में बदलने के लिए चरण 1 से प्राप्त न्यूनतम और अधिकतम मान का उपयोग करें। एक उदाहरण कोड स्निपेट:

    r.recode input=BAND1 output=NEWBAND1 rules=- << EOF
    0.01:0.370064120902708:0:255
    EOF
    

    हम नए रूपांतरित मूल्यों की जाँच कर सकते हैं r.info:

    > r.info -r NEWBAND1
    min=1
    max=254
    

    मान 0-255 में हैं: अब यह पैन-शार्पनिंग प्रक्रिया के लिए उपयोग करने योग्य है।

  3. के साथ परिवर्तित बैंड के लिए ग्रे-स्केल रंग तालिका लागू करें r.colors

    r.colors NEWBAND1 color=grey
    

    अब तक, मुझे ग्रे रंग तालिका का उपयोग करके सबसे अच्छा परिणाम मिलता है - मूल कंपोजिट के साथ पैन-शार्प कंपोजिट का मिलान किया गया। अन्य विकल्पों के साथ color=grey.eqया उसके -eसाथ ध्वज का उपयोग करके ग्रे रंग तालिका को बराबर करना है color=grey। या हम i.landsat.rgbइसके बजाय मॉड्यूल का उपयोग कर सकते हैं r.colors..

  4. अन्य रैस्टर बैंड के साथ चरण 1-3 दोहराएं जिसे हम पैन रैस्टर (बैंड 8) सहित कंपोजिट के रूप में उपयोग करने का इरादा रखते हैं । लिपियों का प्रयोग यहाँ बहुत सराहा जाएगा।

  5. इसके बाद आईएचएस पैन-शार्पनिंग विधि में इनपुट के रूप में प्रोसेस्ड रैस्टर्स का उपयोग करें । उदाहरण के लिए, बैंड का सम्मिश्रण बनाते समय 7,4,2:

    i.rgb.his r=NEWBAND7 g=NEWBAND4 b=NEWBAND2 hue=HUE int=INT sat=SAT
    

    यह 3 परतों को आउटपुट करेगा: एक ह्यू लेयर HUE, एक इंटेंसिटी लेयर INT, और एक संतृप्ति लेयर भी SAT। हम तो तीव्रता परत का स्थान ले लेगा INTपैन रेखापुंज बैंड के साथ NEWBAND8में i.his.rgb:

    i.his.rgb hue=HUE sat=SAT int=NEWBAND8 r=COMP742_red g=COMP742_green b=COMP742_blue
    

    के लाल चैनलों परिणामस्वरूप COMP742_red , COMP742_green , COMP742_blue तो का उपयोग कर जोड़ा जा सकता है d.rgbया r.composite..

नमूना पहले और बाद में:

पैन-तेज करने से पहले:

इससे पहले

पैन-तेज करने के बाद:

उपरांत

हो सकता है कि तीखे मतभेदों को बताना कठिन हो तरह की छोटी छवियों से देखने पर । लेकिन महत्वपूर्ण यह है कि पैन-शार्प इमेज का रंग मूल से मिश्रित है। मिशन पूरा हुआ!

अन्य नोट:

  • मत r.recode थर्मल बैंड (बैंड 6)i.landsat.toarकेल्विन तापमान मूल्यों (डीएन मूल्यों के साथ कुछ नहीं करने के लिए) में इन थर्मल बैंड का उत्पादन। r.recodeसामान्य मल्टी-स्पेक्ट्रल और पैन बैंड (1-5,7,8 बैंड) पर दिनचर्या रखें ।
  • यदि हम कभी भी उपयोग नहीं करते हैं i.landsat.toar , लेकिन परिणामी कंपोजिट वास्तव में गलत दिखते हैं , तो यह आमतौर पर पैन-शार्पनिंग प्रक्रिया से पहले और बाद में रंग-तालिकाओं के बेमेल होने के कारण होता है। मैंने r.colors RASTER color=greyपैन-शार्पनिंग से पहले मूल रेखापुंज बैंडों पर लागू किया , और परिणामी चैनलों में पैन-शार्पनिंग के बाद रंगों का करीबी मिलान सुनिश्चित करने के लिए।
  • गलत-रंग मिश्रित समस्या का एक सामान्य मामला : मूल रेखापुंज बैंड में हैं color=grey255, का आउटपुट i.landsat.rgbअंदर है color=grey.eq। कोई आश्चर्य नहीं कि वे दोनों अलग दिखते हैं!
  • उपयोग के लिए लैंडसैट छवियों को संसाधित करना वास्तव में एक समय-कर गतिविधि हो सकती है । बेहतर है कि कुछ करने के लिए प्रतीक्षा करें जब सभी को संसाधित करने के लिए, या कम से कम कुछ आकर्षक मात्रा में कॉफी और अच्छा संगीत हो;

आशा है कि इससे किसी को लाभ होगा: मुझे यह पता लगाने में दिन लग गए कि क्या गलत है ..


1
आपके शोध और प्रयासों के लिए धन्यवाद, मुझे svn से नए GRASS 7 में भी यह समस्या थी। अब pansharpened छवि के रंग ठीक हैं। =)
व्लादिमीर

ओह, मैं यह उल्लेख करना भूल गया कि मैं कौन सा संस्करण चला रहा हूँ - धन्यवाद @VladimirNaumov याद दिलाने के लिए! मैं GRASS 7svn का उपयोग कर रहा हूं; एहसास होना चाहिए कि यह मुद्दा कुछ ऐसा हो सकता है जो GRASS के सभी संस्करणों में नहीं होता है (मैंने अन्य संस्करणों की कोशिश नहीं की है) ..

इस पर वापस: आप फ़्लोटिंग पॉइंट रेखापुंज नक्शे को पूर्णांक रेखापुंज मानचित्रों में परिवर्तित कर सकते हैं r.mapcalcसाथ ही इसके एकीकृत int()फ़ंक्शन का उपयोग करके । मुझे लगता r.recodeहै कि आपके आवेदन के संदर्भ में इसका उपयोग करने के लिए नहीं है।
निकोस अलेक्जेंड्रिस

1
मुझे लगता है कि समग्र "समस्या" के बारे में i.pansharpenहै कि यह इनपुट के रूप में 8-बिट रेखापुंज नक्शे की उम्मीद करता है, अर्थात इनपुट मान 0 से 255 तक होना चाहिए।
निकोस एलेक्जेंड्रिस

इसके अलावा, ध्यान दें कि i.pansharpenकेवल घास_7 ट्रंक में है। वह विकास संस्करण है ... :-)
निकोस एलेक्जेंड्रिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.