7

की आवश्यकता है, मैं मिडलेट एप्लिकेशन पर काम कर रहा हूं। मैं खुद को चित्रों को स्केल करने की आवश्यकता में खुद को ढूंढ रहा हूं। यह एक समस्या बन गई है क्योंकि कुछ फोन बहुत धीमी हैं और स्केलिंग बहुत अधिक समय लेती है।जावा - मुझे एक बहुत तेज छवि स्केलिंग एल्गोरिदम

वर्तमान में मैं Image.createRGBImage (पूर्णांक, पूर्णांक, पूर्णांक, बूलियन) का उपयोग कर रहा छवि को मापना।

मैं अगर आप में से किसी एक बहुत ही कुशल और तेज़ तरीका एक छवि पैमाने पर करने के बारे में जानता था सोच रहा था।

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

नोट 2: मेरा अधिकांश स्केलिंग छोटी से बड़ी छवियों से किया जाता है, हालांकि मैं छवि को स्केल भी करता हूं।

+1

आप किस आकार के बारे में बात कर रहे हैं? % परिवर्तन मनमानी या कुछ सरल एकाधिक (जैसे 2x) है? –

+0

अनुकूलित करने का एक तरीका है मिपमैपिंग का उपयोग करना: http://www.3drender.com/glossary/mipmapping.htm – appas

+0

स्केल आकार मनमाने ढंग से है। मान लें कि मेरी छवि 65px द्वारा 100px है। मुझे इसे किसी भी आकार में स्केल करने की ज़रूरत है। आइए 200px 500px, या 1200px द्वारा 10px द्वारा कहें। इसलिए इसे लंबवत या क्षैतिज रूप से ऊपर या नीचे स्केल किया जाना चाहिए, और/या दोनों का कोई संयोजन। – Tony

उत्तर

29

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

Nearest neighbor छवि स्केलिंग के सबसे सरल और सबसे तेजी से कार्यान्वयन है।

छवि पैमाने पर एक अच्छा परिचय/Coding Horror जो तकनीक की एक जोड़ी की समीक्षा करता है और उनकी गुणवत्ता तुलना पर आकार परिवर्तन नहीं है।

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

लेकिन यदि आप कुछ अन्य चीजें पढ़ने के इच्छुक हैं, this paper स्केलिंग के लिए कम लागत (जिसका अर्थ है "बहुत तेज़") एल्गोरिदम प्रस्तुत करता है जो निकटतम पड़ोसी इंटरपोलेशन पर महत्वपूर्ण रूप से सुधार करता है। स्रोत कोड उपलब्ध है, और वे उस शोध का विकास भी पेश करते हैं here

OpenCV से पिछले नहीं बल्कि कम से कम

, cvResize() (खुला स्रोत/पार मंच इमेज प्रोसेसिंग के लिए पुस्तकालय)। विलो गेराज पर लोग छवि/वीडियो प्रसंस्करण के लिए तेज़ प्रक्रियाएं करने में बहुत अच्छे हैं, और यह फ़ंक्शन स्केलिंग के लिए कुछ तकनीक प्रदान करता है, इसलिए यह कार्यान्वयन की जांच करने के लायक हो सकता है।

+1

धन्यवाद। मैं वर्तमान में आपके लिंक में वर्णित तकनीक का उपयोग कर रहा हूं: "कुछ लोग इसे जे 2 एमई के लिए सबसे तेज़ छवि स्केलिंग कार्यान्वयन कहते हैं।" मैं अन्य तकनीकों की समीक्षा करूंगा और कुछ परीक्षण करूँगा और देख सकता हूं कि मुझे कोई तेज स्केलिंग मिलती है या नहीं। अपने उत्कृष्ट उत्तर के लिए अंगूठे ऊपर। अंक आप पर जाते हैं। धन्यवाद कार्ल। – Tony

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