6

मैं छवि विश्लेषण और प्रसंस्करण में उपयोग के लिए एक प्रोग्रामिंग भाषा (कोर्स लेना) सीखने के लिए देख रहा हूं। संभावित रूप से जैव सूचना विज्ञान भी। मुझे किस भाषा के लिए जाना चाहिए? सी या जावा? अन्य भाषाएं मेरे लिए एक विकल्प नहीं हैं। कृपया यह भी बताएं कि मेरे आवेदन के लिए कोई भी भाषा बेहतर विकल्प क्यों नहीं है।छवि प्रसंस्करण के लिए जावा या सी

उत्तर

4

आपको कच्चे प्रसंस्करण शक्ति और डेवलपर समय को संतुलित करना होगा। जावा बहुत तेजी से हो रहा है और यदि आप कुछ दिन पहले समाप्त कर चुके हैं, तो आपके पास डेटा को संसाधित करने में अधिक समय है।

यह सब वॉल्यूम पर निर्भर करता है।

इससे भी महत्वपूर्ण बात, मैं सुझाव है कि आप पुस्तकालयों और चौखटे जो पहले से ही मौजूद है, जो क्या किया जाना चाहिए के सबसे करीब फिट बैठता है देखते हैं, और चुनें जो कुछ भी भाषा पुस्तकालय यह सी, जावा या फोरट्रान हो लिखा गया था देखने के लिए।

जावा के लिए मुझे BioJava.org एक शुरुआती बिंदु के रूप में मिला।

4

जावा छवि प्रसंस्करण के लिए खराब नहीं है। यदि आप अपनी स्रोत वस्तुओं को उचित रूप से प्रबंधित करते हैं, तो आपको इसके उचित प्रदर्शन प्राप्त करने का मौका मिलेगा। चीजें मैं जावा के साथ की तरह है कि इमेजिंग से संबंधित है में से कुछ:

  1. जावा उन्नत इमेजिंग
  2. 2 डी ग्राफिक्स उपयोगिताओं आदि
  3. ImageJ, यह जामा के साथ काम करने जाओ (एक BufferedImages पर नज़र रखना)
3

क्षेत्र आप (यानी, जैव सूचना विज्ञान)

सौर चित्रों के लिए, के बहुमत में काम कर रहे हैं में किसी से पूछो काम आईडीएल, फोरट्रान, मैटलैब, पायथन, सी या पर्ल (पीडीएल) में किया जाता है। (लगभग उस क्रम में ... आईडीएल निश्चित रूप से पहला है, क्योंकि अधिकांश उपकरण अंशांकन सॉफ्टवेयर आईडीएल में लिखा गया है)

इस वजह से, हमारे क्षेत्र के लिए पहले से ही उन भाषाओं में बहुत से टूलकिट लिखे गए हैं। अक्सर, बड़े संदर्भ डेटा सेट के साथ, पीआई कुछ सॉफ़्टवेयर पैकेज को डेटा प्रारूप के साथ व्याख्या/बातचीत करने के उदाहरण के रूप में रिलीज़ करता है। मैं केवल यह मान सकता हूं कि जैव सूचना विज्ञान समान होंगे।

यदि आप शेष क्षेत्र की तुलना में एक अलग मार्ग पर जाते हैं, तो आपको अन्य वैज्ञानिकों के साथ काम करने में बहुत कठिन समय होगा क्योंकि आप आसानी से कोड साझा नहीं कर सकते हैं।

नोट - जावा में लिखे गए हमारे क्षेत्र में जारी किए गए कई विज़ुअलाइजेशन टूल हैं, लेकिन वे मानते हैं कि छवियों को पहले से ही किसी अन्य प्रक्रिया द्वारा प्रीपेड कर दिया गया है।

0

आदर्श रूप से, आप "उच्च स्तरीय" सामान के लिए जावा या (यहां तक ​​कि बेहतर) पायथन जैसे कुछ का उपयोग करेंगे, और उन दिनों में संकलित करें जिनके लिए बहुत सारी प्रोसेसिंग पावर की आवश्यकता होती है (उदाहरण के लिए साइथन, आदि का उपयोग करना)।

कुछ वैज्ञानिक पुस्तकालय पाइथन (SciPy और NumPy) के लिए मौजूद हैं, और वे एक अच्छी शुरुआत हैं, हालांकि यह पाइथन और सी को गठबंधन करने के लिए अभी तक सीधा नहीं है (आपको चीजों को थोड़ा सा ट्विक करने की आवश्यकता है)।

0

बस मेरे दो पेन्स लायक: जावा सी/सी ++ या सी # के विपरीत पॉइंटर्स के उपयोग की अनुमति नहीं देता है। तो यदि आप सीधे पिक्सेल में हेरफेर करने जा रहे हैं, यानी अपना खुद का इमेज प्रोसेसिंग फ़ंक्शन लिखें तो वे सी ++ के बराबर की तुलना में बहुत धीमे होंगे। दूसरी ओर सी ++ जावा की तुलना में एक भाषा का कुल दुःस्वप्न है।यह आपको C++ में कोड के बराबर बिट लिखने में कम से कम दो बार ले जाएगा। इसलिए सभी उत्पादकता लाभ के साथ आप शायद एक कंप्यूटर खरीद सकते हैं जो रनटाइम में अंतर के लिए बनाता है ;-)

मुझे पता है कि अन्य भाषाएं आपके लिए एक विकल्प नहीं हैं, लेकिन व्यक्तिगत रूप से मैं अत्यधिक छवि के लिए सी # की सिफारिश कर सकता हूं प्रसंस्करण या कंप्यूटर दृष्टि: यह पॉइंटर्स की अनुमति देता है और इसलिए सी # में आईपी फ़ंक्शंस सी ++ (एक स्वीकार्य व्यापार-बंद मुझे लगता है) के रूप में धीमा है और इसमें देशी सी ++ के साथ उत्कृष्ट एकीकरण और ओपनसीवी के लिए एक अच्छी रैपर लाइब्रेरी है।

0

अस्वीकरण: मैं टूनाकोड के लिए काम करता हूं।

यदि आपको छवि प्रसंस्करण पर शुरू करने के लिए अलग-अलग भाषाओं के बीच कोई विकल्प बनाना है, तो मैं सी ++ से शुरू करने की सलाह दूंगा। यदि आप व्यक्तिगत पिक्सल पर काम करना चाहते हैं तो आप कच्चे पॉइंटर एक्सेस को जरूरी कर सकते हैं।

अगला, आप किस प्रकार की इमेजिंग में रुचि रखते हैं? बस मजेदार छवि फ़िल्टर या गति अनुमान, ट्रैकिंग और पहचान आदि जैसी कुछ भारी सामग्री के लिए? इसके लिए मैं आपको सलाह देता हूं कि आप जल्द से जल्द CUVILib पर एक नज़र डालें, आपको इमेजिंग कार्यक्षमता पर प्रदर्शन की आवश्यकता होगी और यही सीयूवीआई प्रदान करता है। यदि आप अपने उद्देश्यों की सेवा करते हैं तो आप इसे स्टैंडअलोन के रूप में उपयोग कर सकते हैं या आप इंटेल आईपीपी, आईटीके, ओपनसीवी इत्यादि जैसे अन्य पुस्तकालयों के साथ इसे प्लग कर सकते हैं

1

सबसे लोकप्रिय कंप्यूटर दृष्टि (छवि प्रसंस्करण, छवि विश्लेषण) लाइब्रेरी OpenCV लिखा गया है सी ++ में, लेकिन पाइथन, और जावा (आधिकारिक OpenCV4Android और गैर-आधिकारिक JavaCV) के साथ भी उपयोग किया जा सकता है।

जैव सूचनात्मक अनुप्रयोग हैं जो मूल रूप से छवि प्रसंस्करण होते हैं, इसलिए ओपनसीवी इसका ख्याल रखेगा। लेकिन ऐसे कुछ भी हैं जो नहीं हैं, उदाहरण के लिए, मशीन लर्निंग के आधार पर, इसलिए यदि आपको छवि/वीडियो से संबंधित कुछ और चाहिए तो आपको एक और जैव सूचना विज्ञान उन्मुख पुस्तकालय की आवश्यकता होगी। ओपनसीवी में मशीन लर्निंग मॉड्यूल भी है लेकिन यह कंप्यूटर दृष्टि के लिए अधिक केंद्रित है।

सी बनाम जावा के बारे में, अन्य उत्तरों में सबसे अधिक कहा गया है। मुझे यह जोड़ना चाहिए कि ये पुस्तकालय अब सी ++ आधारित हैं और सादे सी नहीं हैं। यदि आपके अनुप्रयोगों में रीयल-टाइम प्रसंस्करण की ज़रूरत है, तो सी ++ शायद इसके लिए बेहतर होगा, यदि नहीं, तो जावा अधिक से अधिक अनुकूल होगा क्योंकि यह अधिक अनुकूल है।

संबंधित मुद्दे