2012-06-09 7 views
14

मैं छवि को कैप्चर करने के लिए AVCaptureSession के साथ काम कर रहा हूं। यह ठीक काम कर रहा है लेकिन एक अच्छा संकल्प नहीं दे रहा है। मैंने इसे आईफोन कैमरा द्वारा कैप्चर की गई छवि के साथ तुलना की और मैंने पाया कि आईफोन कैमरा छवि AVCaptureSession छवि से काफी बेहतर है।AVCaptureSession अच्छी तस्वीर गुणवत्ता और अच्छा रिज़ॉल्यूशन नहीं दे रहा है

मैंने इस बारे में स्टैक ओवरफ्लो पर 3-4 लिंक देखे हैं लेकिन कोई समाधान नहीं मिला।

भी मैं सभी प्रीसेट

AVCaptureSessionPresetPhoto, 
AVCaptureSessionPresetHigh, 
AVCaptureSessionPresetMedium, 
AVCaptureSessionPresetLow, 
AVCaptureSessionPreset352x288, 
AVCaptureSessionPreset640x480, 
AVCaptureSessionPreset1280x720, 
AVCaptureSessionPreset1920x1080, 
AVCaptureSessionPresetiFrame960x540, 
AVCaptureSessionPresetiFrame1280x720, 

की कोशिश की है, लेकिन अभी भी छवि कम गुणवत्ता की है। अगर मेरा प्रश्न पर्याप्त स्पष्ट नहीं है या मुझे कुछ याद आया तो कृपया मुझे बताएं।

किसी भी मदद की सराहना की जाएगी।

+0

मैं सलाह देता हूं कि आप इस नमूना ऐप को सेब http://developer.apple.com/library/ios/#samplecode/AVCam/Listings/Classes_AVCamViewController_m.html#//apple_ref/doc/uid/DTS40010112 से देखेंगे -Classes_AVCamViewController_m-DontLinkElementID_10 –

+0

@AnkitSrivastava - मैंने इस नमूना कोड का उपयोग करके एक छवि पर कब्जा कर लिया है लेकिन अभी भी छवि अच्छी नहीं है। – TheTiger

+0

सत्रप्रेसेट के लिए आप किस मूल्य को सेट कर रहे हैं ..? –

उत्तर

13

एक AVCaptureStillImageOutput साथ पूर्व निर्धारित AVCaptureSessionPresetPhoto का उपयोग कर, मैं 3268x2448 के एक संकल्प, ठीक उसी संकल्प है जिस पर एक iPhone 4S पर छवियों को पकड़ने में सक्षम हूँ कि अंतर्निहित कैमरा आवेदन की पैदावार। आईफोन 4, रेटिना आईपैड इत्यादि के लिए भी यही सच है, इसलिए यदि आप अभी भी छवि इनपुट के साथ प्रीसेट का उपयोग करते हैं, तो आपको -captureStillImageAsynchronouslyFromConnection:completionHandler: से नमूना बफर वापस मिलेगा जो मूल कैमरा रिज़ॉल्यूशन है।

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

यदि आप एचडीआर बंद करते हैं, तो छवि की गुणवत्ता मेरे जैसा दिखती है।

AVCaptureStillImageOutput image

और यहाँ अंतर्निहित फ़ोटो आवेदन से एक है: में मामूली अंतर की उपेक्षा कर

Built-in Photos image

यहाँ एक तस्वीर का एक ज़ूम में भाग एक AVCaptureStillImageOutput का उपयोग कर कब्जा कर लिया है कैमरे की दिशा में थोड़ी सी बदलाव के कारण प्रकाश, दोनों तरीकों पर कब्जा कर लिया गया चित्रों का संकल्प और निष्ठा एक जैसा दिखता है।

मैं my open source GPUImage framework से SimplePhotoFilter उदाहरण अनुप्रयोग का उपयोग पहली छवि पर कब्जा कर लिया, एक GPUImageGammaFilter कि गामा किसी भी, बस एक पासथ्रू के रूप में काम समायोजित नहीं किया साथ डिफ़ॉल्ट GPUImageSketchFilter की जगह।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद !! मैंने एक महीने पहले अपने जीपीयू इमेज फ्रेमवर्क को डाउनलोड किया था और इसे अपने परीक्षण अनुप्रयोग में भी इस्तेमाल किया है और इसे बहुत अच्छा पाया है। मेरा वर्तमान ऐप ऑफ बटन पर सभी अभिविन्यास और फ्लैश का समर्थन करता है, जीपीयूइमेज फ्रेम एक बड़ी परियोजना है और मैं बस इसके एक हिस्से का उपयोग करना चाहता हूं ... और ऐसा करने में असमर्थ है और मेरा कैमरा दृश्य परिदृश्य में 35 9 x280 का है, इसलिए GPUImage कठिन है मेरे लिए उपयोग करने के लिए। :-( – TheTiger

+0

क्या उपरोक्त सभी के अलावा कोई अन्य प्रीसेट सेट करना संभव है ..? – TheTiger

+1

@ वाकुलसेनी - बस GPUImageStillCamera और GPUImageVideoCamera कक्षाओं में देखें, जहां आप देख सकते हैं कि मैं एवी फाउंडेशन इनपुट कैसे सेट करता हूं और फ़ोटो कैप्चर करता हूं। यह कोड काम करता है, इसलिए इस पर अपना खुद का कार्यान्वयन करें। मुझे यकीन नहीं है कि आप अन्य प्रीसेट के बारे में क्यों पूछ रहे हैं, क्योंकि यदि आप एक फोटो ले रहे हैं तो आप उच्च संकल्प कैप्चर के लिए AVCaptureSessionPresetPhoto का उपयोग करना चाहेंगे। कुछ और कम होगा मूल कैमरे की तुलना में संकल्प। –

6

हमारे पास उस कोड संदर्भ का उपयोग करने में एक ही समस्या थी। आईपैड फ्रंट फेस कैमरा का उपयोग कर तस्वीरें विशेष रूप से खराब थीं।

हमने कैप्चर मैनेजर की स्थापना और कैप्चर छवि विधि को कॉल करने के बीच 1 सेकंड की देरी जोड़कर इसे ठीक किया। इससे हमें काफी अंतर आया कि हम परिणाम से खुश थे। ऐसा लगता है कि कैमरे को शटर खोलने के लिए कुछ समय चाहिए और ऑटो-फ़ोकस/व्हाइट-बैलेंसिंग डिफ़ॉल्ट विकल्प निष्पादित करें।

[NSTimer scheduledTimerWithTimeInterval:1.0 
    target:self.captureManager 
    selector:@selector(captureStillImage) 
    userInfo:nil repeats:NO]; 
+0

हाँ मैंने यह भी कोशिश की है, लेकिन मुझे लगता है कि मुझे इसके बारे में चिंता नहीं करनी चाहिए क्योंकि सेब द्वारा छवि कैप्चर की जाती है नमूना कोड एवीकैम भी खराब गुणवत्ता है .... केवल आईफोन मूल कैमरा अच्छी तस्वीरों को कैप्चर करता है ... :-) – TheTiger

4

बस अपनी फ़ाइल में कोड की इस पंक्ति जोड़ने

self.captureSession.sessionPreset = AVCaptureSessionPresetPhoto 

आप सेब से एकीकृत कैमरा एप्लिकेशन की तरह एक भयानक संकल्प मिल जाएगा।

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