2011-10-14 11 views
28

क्या matplotlib में एंटीअलाइजिंग बढ़ाना संभव है? मैं अभी भी अपने डेटा में कुछ अलियासिंग देख सकता हूं, मैंने कई बैकएंड की कोशिश की और यह अभी भी वहां है। लाइनों का antialiasing झंडा सेट है।matplotlib में एंटीअलाइजिंग की शक्ति

यहां आप देख सकते मैं क्या मतलब

enter image description here

यह एक नमूना एक स्क्रीनशॉट से लिया है। यह शायद सबसे अच्छा उदाहरण नहीं है लेकिन मुझे लगता है कि कोई लाइन में सीढ़ियों को देख सकता है। यह wxagg बैकएंड के साथ लिया गया था।

मैं Windows 7 के साथ matplotlib संस्करण 1.01 उपयोग कर रहा हूँ

अद्यतन: मैं कोड जो पिछले चित्र अब और उत्पादन की जरूरत नहीं है, लेकिन मैं अभी भी समस्या है। नीचे एक साधारण कोड उदाहरण है जो एलियासिंग दिखाता है।

import numpy as np 
import matplotlib 
matplotlib.use('wxAgg') 
import matplotlib.pyplot as pl 
print 'Backend:', pl.get_backend() 

x = np.linspace(0,6,100) 
y = np.sin(x) 

for a in range(10): 
    pl.plot(x, a/10.*x, linewidth=1) 

pl.show() 

यह प्रिंट की Backend: WXAgg और जिसके परिणामस्वरूप साजिश निम्नलिखित की तरह दिखता है। aliasing

विशेष रूप से निचला लाल वक्र स्पष्ट अलियासिंग दिखाता है।

+6

उच्च स्तरीय एल्गोरिदम के साथ उच्च पिक्सेल आयामों और डाउन स्केल पर अपनी साजिश प्रस्तुत करें। –

+0

लेकिन इंटरैक्टिव सत्रों के बारे में क्या? – P3trus

+0

क्या आप 'इमशो' के साथ छवि प्लॉट का जिक्र कर रहे हैं? यदि ऐसा है, तो एंटीअलाइजिंग के साथ इसका कोई लेना-देना नहीं है, यह केवल 'इम्शो' द्वारा उपयोग किया जाने वाला इंटरपोलेशन एल्गोरिदम है। (यह मूल डेटा की बजाय 3-बैंड रंग सरणी को अलग करता है, जो कई कलाकृतियों का कारण बन सकता है।) –

उत्तर

4

जो तस्वीर आपने अपने प्रश्न में जोड़ा है वह पहले से ही पूरी तरह से एंटी-एलाइज्ड है। यह इससे बेहतर नहीं मिलता है। छवि का एक ज़ूम संस्करण पर एक नज़र डालें:

Upscaled version of the image in question

+1

आप सही हैं कि यह अच्छी तरह से एंटी-एलाइज्ड है, लेकिन मुझे यकीन नहीं है कि मैं अब तक "परिपूर्ण" के रूप में जाऊंगा। ऐसे कई कारक हैं जो एक अच्छे एंटी-एलियास एल्गोरिदम में जाते हैं। –

+0

1. ऐसा लगता है कि इसमें सीमित संख्या में रंग नहीं हैं (उदाहरण के लिए विंडोज फ़ॉन्ट प्रतिपादन पसंद है) 2. कोई दृश्यमान कलाकृतियों। 3. उप-चित्रण प्रतिपादन लाल चीजों के लिए एक विकल्प नहीं है। 4. प्रत्येक पंक्ति में एक पिक्सेल-अवधि की चौड़ाई रेखा चौड़ाई द्वारा परिभाषित की जाती है, इसलिए एल्गोरिदम द्वारा बदला नहीं जा सकता है। मुझे वास्तव में नहीं पता कि यह किसी भी तरह से कैसे सुधार किया जा सकता है। क्या आप एक रास्ता देखते हैं? – Simon

+0

मैं उप-पिक्सेल प्रतिपादन का भी जिक्र नहीं कर रहा था। आपने एक कारक लाया है, रंगों की संख्या, जो लागू सुपरसंपलिंग की मात्रा द्वारा निर्धारित की जाती है। मैं दूसरों के बारे में सोच सकता हूं: फ़िल्टर का आकार और आकार, रंग स्थान की रैखिकता। –

4

आप एक .svg फ़ाइल के रूप में चित्र सहेजते हैं, तो आप अनंत सटीक होगा। इसके बाद आप इस .svg को इंकस्केप जैसे कुछ के साथ संपादित कर सकते हैं, और आपको जितना चाहें उतना सटीक/एंटीअलाइजिंग प्राप्त कर सकते हैं।

+0

हाँ, 'svg -> inkscape में निर्यात -> 5x डीपीआई पर पीएनजी को निर्यात करें -> GIMP -> [थोड़ा धुंधला? ->] पैमाने पर 20% -> फिर से पीएनजी निर्यात करें। मेरे लिए पड़ोसी बहुभुज के बीच पूरी तरह से सफेद रेखाओं को हटा दिया। – naught101

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