मैं पैटर्न मान्यता के लिए डीईएम रेखापुंज पर अपने फिल्टर की जांच करने की कोशिश कर रहा हूं और यह हमेशा अंतिम पंक्तियों और स्तंभों को याद करने के परिणामस्वरूप होता है (जैसे कि..20) । मैंने पीआईएल लाइब्रेरी, इमेज लोड के साथ कोशिश की है। फिर सुन्न के साथ। आउटपुट एक ही है।
मैंने सोचा, मेरे छोरों के साथ कुछ गलत है, जब सरणी में मानों की जाँच कर रहा है (आर्ककॉस्टिक्स में पहचान के साथ सिर्फ पिक्सेल उठाते हुए) मुझे एहसास हुआ कि पिक्सेल मूल्यों को एक सरणी में लोड नहीं किया गया था।
इसलिए, बस केवल खोलना, सरणी में डालना और छवि को सरणी से बचाना:
a=numpy.array(Image.open(inraster)) #raster is .tif Float32, size 561x253
newIm=Image.new(Im.mode, Im.size)
Image.fromarray(a).save(outraster)
अंतिम पंक्तियों और स्तंभों को काटने में परिणाम। क्षमा करें, छवि को # पोस्ट नहीं कर सकता
कोई भी यह समझने में मदद कर सकता है कि क्यों? और कुछ समाधान की सलाह दें?
संपादित करें:
इसलिए, मैंने लोगों की मदद से छोटे चीरों को सुपीरियर सरणी में लोड करने में कामयाबी हासिल की, लेकिन बड़ी छवि होने पर मुझे त्रुटियां होने लगती हैं। मुझे लगता है कि यह सुन्न सरणी की सीमाओं के बारे में है, और इसलिए सरणी स्वचालित रूप से आकार में है या इस तरह से smth है ... तो पूर्व:
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
ima=numpy.array(inDs.GetRasterBand(1).ReadAsArray())
File "C:\Python25\lib\site-packages\osgeo\gdal.py", line 835, in ReadAsArray
buf_xsize, buf_ysize, buf_obj )
File "C:\Python25\lib\site-packages\osgeo\gdal_array.py", line 140, in BandReadAsArray
ar = numpy.reshape(ar, [buf_ysize,buf_xsize])
File "C:\Python25\lib\site-packages\numpy\core\fromnumeric.py", line 108, in reshape
return reshape(newshape, order=order)
ValueError: total size of new array must be unchanged
मुद्दा यह है कि मैं ब्लॉक को ब्लॉक करके पढ़ना नहीं चाहता क्योंकि मुझे फ़िल्टरिंग की आवश्यकता है, कई बार अलग-अलग फिल्टर, विभिन्न आकारों के साथ .. क्या कोई काम है या मुझे ब्लॉक द्वारा रीडिंग सीखना होगा: O