मैं अपने मॉडल के अंदर एक सरल / अन्य कार्य करना चाहता हूं और मैं जानना चाहता हूं कि यह संभव है या नहीं।
मैं यह बात चाहता हूं कि यदि 'सेगमेंट लेयर' के लिए एक इनपुट चुना जाता है, तो उसे 'सेगमेंटेशन (माध्योपचार)' पर अमल नहीं करना है और अगली प्रक्रिया के लिए इनपुट के बजाय 'सेगमेंट लेयर' का उपयोग करना है।
'सेगमेंटेशन (माध्य)' के लिए इनपुट निम्नानुसार हैं
यूसुफ के उत्तर को लागू करने की कोशिश करने के बाद अपडेट करें: मैंने निम्नलिखित कोड का उपयोग किया और यह त्रुटि मिली
अद्यतन 2, मापदंडों को बदलने के बाद मुझे लाइन 28 में एक त्रुटि मिलती है यह 'और:' खड़ा है
##Example=name
##BGREN=optional raster
##Segment_Layer=optional vector
##output=output vector
if BGREN is not None:
processing.runalg('otb:segmentationmeanshift', \
-BGREN\
-0\
-70\
-70\
-0.1\
-100\
-100\
-0\
-0\
-0\
-'True'\
-'False'\
-1\
-0.1\
-'Layer'\
-'DN'\
-1024\
-1\
-0\
-output)
else:
output=Segment_Layer
अपडेट करें यह काम करता है :) कुछ प्रयासों के बाद और जोसेफ के साथ यह कोड अब एक आकर्षण की तरह काम करता है, अंतिम चाल थी दो वैकल्पिक मूल्यों को 'कोई नहीं' के साथ बदलना।
##Example=name
##BGREN=optional raster
##Segment_Layer=optional vector
##output=output vector
if BGREN is not None:
processing.runalg('otb:segmentationmeanshift', \
BGREN, \
0, \
70, \
70, \
0.1, \
100, \
100, \
0, \
0, \
None, \
True, \
False, \
1, \
0.1, \
'Layer', \
'DN', \
1024, \
1, \
None, \
output)
else:
output=Segment_Layer