अध्याय 15: फोकस (Focus)
एक्सपोज़र ब्राइटनेस को नियंत्रित करता है। फोकस नियंत्रित करता है कि क्या शार्प (sharp) है। इस अध्याय में, आप सीखेंगे कि स्मार्टफोन फोकस सिस्टम कैसे काम करते हैं, Camera2 के माध्यम से ऑटो फोकस (AF) को कैसे चलाया जाए, और LENS_FOCUS_DISTANCE का उपयोग करके मैनुअल फोकस स्लाइडर कैसे बनाया जाए।
Android Camera Parameters ऐप अपने फोकस पैनल में यह सब दिखाता है — आप AF स्टेट मशीन के ट्रांज़िशन को लाइव देख सकते हैं।
स्मार्टफोन में AF तंत्र (Focus Mechanisms)
- Contrast-Detect AF (CDAF): इमेज फ्रेम का विश्लेषण करें और अधिकतम कंट्रास्ट खोजें। यह थोड़ा धीमा होता है क्योंकि लेंस को "हंट (hunt)" करना पड़ता है।
- Phase-Detect AF (PDAF): सेंसर पर विशेष पिक्सेल सीधे मापते हैं कि लेंस को कहाँ जाना है। यह बहुत तेज़ होता है।
- Laser AF / ToF AF: एक इंफ्रारेड लेजर पल्स विषय की दूरी को मापता है। यह अंधेरे में भी बहुत तेज़ होता है।
AF मोड: CONTROL_AF_MODE
| मोड | व्यवहार | उपयोग का मामला |
|---|---|---|
OFF | कोई AF नहीं। आप मैनुअल फोकस सेट करते हैं। | मैनुअल फोकस |
AUTO | वन-शॉट AF। ट्रिगर करने पर एक बार स्कैन करता है और लॉक हो जाता है। | फोटो |
CONTINUOUS_PICTURE | लगातार फोकस करता रहता है, लेकिन फोटो लेते समय रुक जाता है। | फोटोग्राफी डिफॉल्ट |
CONTINUOUS_VIDEO | लगातार फोकस करता है — कभी नहीं रुकता। | वीडियो |
AF स्टेट मशीन (The AF State Machine)
फोटो लेने के लिए सबसे महत्वपूर्ण स्टेट FOCUSED_LOCKED है। स्थिर फोटोग्राफी के लिए नियम: कभी भी तब तक फोटो न लें जब तक आप FOCUSED_LOCKED (या NOT_FOCUSED_LOCKED विफलता के मामले में) न देख लें।
फोकस दूरी: मीटर नहीं, डायोप्टर (Diopters)
Camera2 में LENS_FOCUS_DISTANCE डायोप्टर (D) का उपयोग करता है, मीटर का नहीं। डायोप्टर फोकस दूरी का व्युत्क्रम (reciprocal) है:
Focus Distance (meters) = 1.0 / Diopters
| डायोप्टर | भौतिक फोकस दूरी |
|---|---|
| 0.0 | अनंत (Infinity - ∞) |
| 1.0 | 1 मीटर |
| 5.0 | 0.2 मीटर (20 सेमी) |
| 10.0 | 0.1 मीटर (10 सेमी) |
हाइपरफोकल दूरी (Hyperfocal Distance)
स्मार्टफोन के लिए LENS_FOCUS_DISTANCE = 2.0D (50 सेमी फोकस) सेट करना अधिकांश परिदृश्यों के लिए "सब कुछ शार्प" रखने का अच्छा तरीका है।
उदाहरण 1: वन-शॉट AF ट्रिगर और कैप्चर
लक्ष्य: शटर दबाने पर AF को लॉक करना और फिर फोटो लेना।
- AF ट्रिगर शुरू करें:
CONTROL_AF_TRIGGER_STARTभेजें। - स्टेट चेक करें:
CONTROL_AF_STATEकेFOCUSED_LOCKEDहोने का इंतज़ार करें। - फोटो लें:
TEMPLATE_STILL_CAPTUREसबमिट करें। - रिलीज़ करें: फोटो के बाद
CONTROL_AF_TRIGGER_CANCELभेजें और वापस continuous मोड में जाएँ।
उदाहरण 2: मैनुअल फोकस स्लाइडर
एक SeekBar के माध्यम से LENS_FOCUS_DISTANCE को 0.0D से LENS_INFO_MINIMUM_FOCUS_DISTANCE तक नियंत्रित किया जा सकता है।
- थ्रॉटल (Throttle): स्लाइडर अपडेट को ~30fps तक सीमित रखें ताकि सिस्टम पर बोझ न पड़े।
- मोड: स्लाइडर हिलाते समय
CONTROL_AF_MODE = OFFसेट करें ताकि ऑटो फोकस आपके मैनुअल सेटिंग से न लड़े।
टच-टू-फोकस (Focus Regions)
आप CONTROL_AF_REGIONS का उपयोग करके स्क्रीन पर टैप किए गए हिस्से पर फोकस कर सकते हैं। प्रो टिप: बेहतर परिणाम के लिए इसके साथ CONTROL_AE_REGIONS (एक्सपोज़र) को भी उसी जगह सेट करें।
सारांश (Summary)
- AF मोड: AUTO, CONTINUOUS, और OFF (मैन्युअल)।
- स्टेट्स: कैप्चर से पहले
FOCUSED_LOCKEDका इंतज़ार करें। - डायोप्टर: 0.0D का मतलब अनंत है।
- हाइपरफोकल: लैंडस्केप के लिए ~2.0D एक अच्छा डिफॉल्ट है।
आगे क्या है
ब्राइटनेस और शार्पनेस के बाद अब रंग की बारी है। अध्याय 16: व्हाइट बैलेंस और रंग में, हम AWB मोड और कलर ट्रांसफ़ॉर्म के बारे में सीखेंगे।