इमेज प्रोसेसिंग, पायथन में? [बन्द है]


81

मुझे हाल ही में एक समस्या आई है जिसमें कम से कम एक बुनियादी छवि प्रसंस्करण की आवश्यकता होती है, क्या मैं पायथन में ऐसा कर सकता हूं, और यदि हां, तो क्या?


4
PyPy का उपयोग करके रीयलटाइम इमेज प्रोसेसिंग: morepypy.blogspot.com/2011/07/…
मिखाइल

जवाबों:


53

सबसे प्रसिद्ध पुस्तकालय पीआईएल है । हालाँकि यदि आप केवल बुनियादी हेरफेर कर रहे हैं, तो आप शायद ImageMagick के लिए पायथन बाइंडिंग के साथ बेहतर हैं , जो कि पायथन में ट्रांसफ़ॉर्म लिखने की तुलना में अधिक कुशल होगा।


7
मुझे लगता है कि आपके पास यह है कि पिछड़ा: PIL केवल सबसे बुनियादी बेसिकबोन कार्यक्षमता प्रदान करता है, लेकिन यह Python GUIs को अच्छी तरह से एकीकृत करता है। IM बहुत अधिक पूर्ण विशेषताओं वाला है, लेकिन GUI के साथ एकीकृत करने के लिए कुछ मैनुअल वर्क ट्रेडिंग बफ़र्स की आवश्यकता है।
सिल्वरबैकनेट

19
आइए इसे इस तरह से रखें, लेकिन दुःखद लेकिन पीआईएल सीम को छोड़ दिया जाता है और यह पेंट के साथ बनाई गई बीएमपी फाइलों को भी लोड नहीं करता है। यदि आप प्रोजेक्ट वेब-पेज की जाँच करते हैं, तो आप इसका पता
लगाएंगे

19
तकिया पीआईएल का एक कांटा है जिसे बनाए रखा और विकसित किया जा रहा है। इसकी जगह इसका इस्तेमाल करना शायद बेहतर होगा।
डेविड जॉनस्टोन

46

"इमेज प्रोसेसिंग" से आपका मतलब क्या है, इस पर निर्भर करते हुए, बेहतर विकल्प खस्ता आधारित पुस्तकालयों में हो सकता है: महोत्तास , scikits.image , या scipy.ndimage । ये सभी सुन्न सरणियों के आधार पर काम करते हैं, इसलिए आप एक पुस्तकालय और दूसरे से कार्यों को मिला सकते हैं और मेल कर सकते हैं।

मैंने वेबसाइट http://pythonvision.org शुरू की, जिसमें इन पर अधिक जानकारी है।


"Scikits.image SciKit (SciPy के लिए टूलकिट) छवि प्रसंस्करण दिनचर्या का एक बहुमुखी सेट प्रदान करने के लिए scipy.ndimage का विस्तार करता है।" मुझे आश्चर्य है कि उन्होंने सिर्फ सीधे योगदान देने में योगदान क्यों नहीं दिया।
3

1
इन सभी पैकेजों में अलग-अलग आंतरिक संरचनाएं हैं। हालांकि, कम से कम मेरे पैकेज, महोटास, नेडिमेज से बहुत सारे कोड ले लिए।
luispedro


धन्यवाद। मेरा जवाब अपडेट किया गया
luispedro

scipy.ndimageलिंक मर चुका है। वर्तमान लिंक, सबसे शायद: scipy.github.io/devdocs/tutorial/ndimage.html
kmonsoor

19

आपके पास "मानक" वैज्ञानिक मॉड्यूल के आधार पर छवि प्रसंस्करण के लिए एक दृष्टिकोण है: SciPy में छवि प्रसंस्करण के लिए समर्पित एक पूरा पैकेज है: scipy.ndimage । Scipy मानक सामान्य संख्यात्मक गणना पैकेज के प्रभाव में है; यह वास्तविक मानक सरणी-हेरफेर मॉड्यूल NumPy पर आधारित है : छवियों को संख्याओं के सरणी के रूप में भी हेरफेर किया जा सकता है। छवि प्रदर्शन के लिए, Matplotlib ("विज्ञान त्रयी" का एक भाग) छवियों को प्रदर्शित करना काफी सरल बनाता है

SciPy को अभी भी सक्रिय रूप से बनाए रखा गया है, इसलिए यह भविष्य के लिए एक अच्छा निवेश है। इसके अलावा, SciPy वर्तमान में पायथन 3 के साथ भी चलता है, जबकि पायथन इमेजिंग लाइब्रेरी (PIL) नहीं करता है।


भविष्य के संदर्भ के लिए, ndimage को वैसे भी PIL की आवश्यकता होती है।
दाविदबर्तन

1
@ नॉटजिम: करता है? PIL को MacPorts द्वारा SciPy की निर्भरता में सूचीबद्ध नहीं किया गया है, और मैं import scipyकोई PIL इंस्टॉल नहीं कर सकता ( import Imageविफल रहता है ImportError)।
एरिक ओ लेबिगॉट

2
हां, जब मैंने ImRead का उपयोग करके एक छवि को पढ़ने की कोशिश की, तो मुझे त्रुटि मिली "ImportError (" पायथन इमेजिंग लाइब्रेरी (PIL) आयात नहीं कर सका "
davidtbernal

2
@notJim: यह सच है कि SciPy छवि पढ़ने के लिए PIL पर निर्भर करता है (मैंने "सरल" JPEG फ़ाइल के साथ प्रयास किया, और यह आपके उदाहरण में उसी तरह विफल रहा)। SciPy अभी भी PIL के बिना इमेज प्रोसेसिंग कर सकता है (PIL एक वैकल्पिक निर्भरता है)।
एरिक ओ लेबिगोट



6

वास्तव में एक अद्भुत पायथन इमेजिंग लाइब्रेरी (PIL) है । यह आपको एंटी-अलियासिंग क्षमताओं सहित मौजूदा छवियों को बदलने और पाठ और इस तरह से नई छवियां बनाने की क्षमता देता है। आप उपरोक्त साइट पर प्रदान की गई PIL हैंडबुक में एक सभ्य परिचयात्मक ट्यूटोरियल भी पा सकते हैं ।


9
क्या आपने यह प्रश्न पूछने से पहले Google का उपयोग किया था? :-) मैं यह नहीं कह रहा हूँ कि तुम चाहिए , सिर्फ इतना है कि यह एक मिनट से भी कम समय में अपने खुद के सवाल का जवाब देने हास्यास्पद एक सा लगता है।
एलेक्जेंड्रा फ्रैंक्स

5
इस साइट का पूरा विचार (प्रश्न, उत्तर) जोड़े प्रदान करना है जो विषय पर खोज करने वाले किसी व्यक्ति के लिए उपयोगी जानकारी के रूप में काम करेंगे। यह प्रोत्साहित किया जाता है कि यदि आपको कुछ उपयोगी पता चलता है जिसे आप पहले नहीं जानते थे, और यह पहले से ही साइट पर नहीं है, कि आप इसे StackOverflow के साथ साझा करते हैं।
एक्यूडम

8
एफएक्यू से: अपने स्वयं के प्रोग्रामिंग प्रश्न को पूछना और उसका जवाब देना भी पूरी तरह से ठीक है, लेकिन आप जोखिम में पड़ने का दिखावा करते हैं: इसे प्रश्न के रूप में वाक्यांश। हालाँकि, मुझे लगता है कि इस सवाल का जवाब किसी को भी आसानी से गूगल सर्च के ज़रिए जल्दी मिल सकता है ...
मार्टिन डब्ल्यू

5
@MartinW - मुझे यह सवाल Google खोज के माध्यम से मिला
Bulwersator


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.