विषयसूची:

अपना खुद का कैमरा बनाएं: 8 कदम
अपना खुद का कैमरा बनाएं: 8 कदम

वीडियो: अपना खुद का कैमरा बनाएं: 8 कदम

वीडियो: अपना खुद का कैमरा बनाएं: 8 कदम
वीडियो: फ़ोन के Camera की ये सेटिंग सीख गये तो कैमरा मास्टर बन जाओगे | Phone Camera Setting 2024, नवंबर
Anonim
Image
Image
अपना खुद का कैमरा बनाएं
अपना खुद का कैमरा बनाएं

यह निर्देशयोग्य बताता है कि ओमनीविज़न OV7670 इमेज सेंसर, एक Arduino माइक्रोकंट्रोलर, कुछ जम्पर वायर और प्रोसेसिंग 3 सॉफ़्टवेयर का उपयोग करके एक मोनोक्रोम कैमरा कैसे बनाया जाता है।

रंगीन छवि प्राप्त करने के लिए प्रायोगिक सॉफ्टवेयर भी प्रस्तुत किया गया है।

640*480 पिक्सेल की छवि कैप्चर करने के लिए "c" कुंजी दबाएं … छवि को फ़ाइल में सहेजने के लिए "s" कुंजी दबाएं। यदि आप एक छोटी समय-व्यतीत मूवी बनाना चाहते हैं तो क्रमिक छवियों को क्रमानुसार क्रमांकित किया जाता है।

कैमरा तेज़ नहीं है (प्रत्येक स्कैन में 6.4 सेकंड लगते हैं) और यह केवल निश्चित प्रकाश व्यवस्था में उपयोग के लिए उपयुक्त है।

आपके Arduino और PC को छोड़कर, लागत एक कप कॉफी से भी कम है।

इमेजिस

जम्पर वायरिंग के बिना घटक भागों को शुरुआती फोटो में दिखाया गया है।

दूसरी तस्वीर एक स्क्रीन-शॉट है जिसमें Arduino कैमरा सॉफ्टवेयर और प्रोसेसिंग 3 फ्रेम-ग्रैबर दिखा रहा है। इनसेट दिखाता है कि कैमरा कैसे जुड़ा है।

वीडियो कैमरे को कार्रवाई में प्रदर्शित करता है। जब "c" कैप्चर कुंजी को दबाया जाता है तो एक संक्षिप्त फ्लैश होता है जिसके बाद छवि को स्कैन करते समय गतिविधि का एक विस्फोट होता है। स्कैन पूरा होने के बाद छवि स्वचालित रूप से डिस्प्ले विंडो में दिखाई देती है। छवियों को "एस" कुंजी के प्रत्येक प्रेस के बाद प्रसंस्करण फ़ोल्डर में दिखाई देने के लिए देखा जाता है। वीडियो सहेजी गई तीन छवियों में से प्रत्येक के माध्यम से तेजी से साइकिल चलाकर समाप्त होता है।

चरण 1: सर्किट आरेख

सर्किट आरेख
सर्किट आरेख
सर्किट आरेख
सर्किट आरेख
सर्किट आरेख
सर्किट आरेख

इस कैमरे के सभी संस्करणों के लिए सर्किट आरेख, फोटो 1 में दिखाया गया है।

तस्वीरें 2, 3 दिखाती हैं कि जंपर्स-तार और घटक कैसे जुड़े हुए हैं।

एल्युमिनियम ब्रैकेट के बिना चित्र उनके किनारे पड़े हैं।

चेतावनी

OV7670 कैमरा चिप में किसी भी जम्पर तारों को जोड़ने से पहले अपने Arduino को प्रोग्राम करें। यह पिछले प्रोग्राम से 5 वोल्ट आउटपुट पिन को 3v3 वोल्ट OV7670 कैमरा चिप को नष्ट करने से रोकेगा।

चरण 2: भागों की सूची

हिस्सों की सूची
हिस्सों की सूची

निम्नलिखित भाग https://www.aliexpress.com/ से प्राप्त किए गए थे।

  • Arduino DIY किट के लिए केवल 1 OV7670 300KP VGA कैमरा मॉड्यूल
  • 1 केवल कैमरा ब्रैकेट नट और बोल्ट के साथ पूर्ण
  • Arduino MEGA328P के लिए केवल 1 UNO R3 USB केबल के साथ 100% मूल ATMEGA16U2

निम्नलिखित भागों को स्थानीय रूप से प्राप्त किया गया था

  • 18 और अरुडिनो नर-मादा जम्पर केबल
  • 3 केवल अर्दुइनिन महिला-महिला जम्पर केबल
  • १ केवल मिनी ब्रेड-बोर्ड
  • 4 केवल 4K7 ओम 1/2 वाट प्रतिरोधक
  • 1 केवल स्क्रैप एल्यूमीनियम स्टैंड।

आपको निम्नलिखित डेटाशीट की भी आवश्यकता होगी:

  • https://web.mit.edu/6.111/www/f2016/tools/OV7670_20…
  • https://www.haoyuelectronics.com/Attachment/OV7670%…

चरण 3: सिद्धांत

सिद्धांत
सिद्धांत

OV7670 कैमरा चिप

OV7670 कैमरा चिप से डिफ़ॉल्ट आउटपुट में एक YUV (4:2:2) वीडियो सिग्नल और 3 टाइमिंग वेवफॉर्म शामिल हैं। I2C संगत बस के माध्यम से आंतरिक रजिस्टरों को प्रोग्रामिंग करके अन्य आउटपुट प्रारूप संभव हैं।

YUV (४:२:२) वीडियो सिग्नल (फोटो १) मोनोक्रोम (ब्लैक एंड व्हाइट) पिक्सल का एक सतत अनुक्रम है, जो यू (नीला रंग अंतर) और वी (लाल रंग अंतर) रंग जानकारी से अलग होता है।

इस आउटपुट स्वरूप को YUV (4:2:2) के रूप में जाना जाता है क्योंकि 4 बाइट्स के प्रत्येक समूह में 2 मोनोक्रोम बाइट्स और 2 रंग बाइट्स होते हैं।

एक रंग का

एक मोनोक्रोम छवि प्राप्त करने के लिए हमें हर दूसरे डेटा बाइट का नमूना लेना चाहिए।

एक Arduino में केवल 2K रैंडम एक्सेस मेमोरी होती है लेकिन प्रत्येक फ्रेम में 640*2*480 = 307, 200 डेटा बाइट्स होते हैं। जब तक हम OV7670 में एक फ्रेम-ग्रैबर नहीं जोड़ते, तब तक सभी डेटा को प्रोसेसिंग के लिए पीसी लाइन-बाय-लाइन पर भेजा जाना चाहिए।

दो संभावनाएं हैं:

480 लगातार फ्रेम में से प्रत्येक के लिए, हम 1 एमबीपीएस पर पीसी पर भेजने से पहले एक लाइन को उच्च गति पर Arduino पर कैप्चर कर सकते हैं। इस तरह के दृष्टिकोण से OV7670 पूरी गति से काम करता हुआ दिखाई देगा, लेकिन इसमें लंबा समय लगेगा (एक मिनट से भी अधिक)।

मैंने जो तरीका अपनाया है, वह यह है कि पीसीएलके को 8uS तक धीमा कर दिया जाए और प्रत्येक नमूने के आने पर भेज दिया जाए। यह दृष्टिकोण काफी तेज (6.4 सेकंड) है।

चरण 4: डिजाइन नोट्स

डिजाइन नोट्स
डिजाइन नोट्स
डिजाइन नोट्स
डिजाइन नोट्स
डिजाइन नोट्स
डिजाइन नोट्स

अनुकूलता

OV7670 कैमरा चिप एक 3v3 वोल्ट डिवाइस है। डेटा शीट इंगित करती है कि 3.5 वोल्ट से ऊपर के वोल्टेज चिप को नुकसान पहुंचाएंगे।

अपने 5 वोल्ट Arduino को OV7670 कैमरा चिप को नष्ट करने से रोकने के लिए:

  • Arduino से बाहरी घड़ी (XCLK) सिग्नल को वोल्टेज डिवाइडर के माध्यम से एक सुरक्षित स्तर तक कम किया जाना चाहिए।
  • 5 वोल्ट के आंतरिक Arduino I2C पुल-अप प्रतिरोधों को अक्षम किया जाना चाहिए और बाहरी पुल-अप प्रतिरोधों के साथ 3v3 वोल्ट की आपूर्ति के लिए प्रतिस्थापित किया जाना चाहिए।
  • किसी भी जम्पर-तारों को जोड़ने से पहले अपने Arduino को प्रोग्राम करें क्योंकि कुछ पिन अभी भी पहले के प्रोजेक्ट से आउटपुट के रूप में प्रोग्राम किए जा सकते हैं !!! (मैंने इसे कठिन तरीके से सीखा … सौभाग्य से मैंने दो खरीदे क्योंकि वे इतने सस्ते थे)।

बाहरी घड़ी

OV7670 कैमरा चिप को फ़्रीक्वेंसी रेंज 10Mhz से 24MHz में बाहरी घड़ी की आवश्यकता होती है।

उच्चतम आवृत्ति जो हम 16 मेगाहर्ट्ज Arduino से उत्पन्न कर सकते हैं वह 8 मेगाहर्ट्ज है लेकिन ऐसा लगता है कि यह काम करता है।

सीरियल लिंक

1 एमबीपीएस (मिलियन बिट प्रति सेकेंड) सीरियल लिंक पर 1 डेटा बाइट भेजने में कम से कम 10 यूएस (माइक्रोसेकंड) लगते हैं। इस समय को इस प्रकार बनाया गया है:

  • 8 डेटा बिट्स (8us)
  • 1 स्टार्ट-बिट (1uS)
  • 1 स्टॉप-बिट (1uS)

आंतरिक घड़ी

OV7670 के भीतर आंतरिक पिक्सेल घड़ी (PCLK) आवृत्ति बिट्स [5:0] रजिस्टर CLKRC के भीतर सेट की गई है (फोटो 1 देखें)। [1]

अगर हम बिट्स [५:०] = बी१११११११ = ६३ सेट करते हैं और इसे उपरोक्त सूत्र पर लागू करते हैं तो:

  • एफ (आंतरिक घड़ी) = एफ (इनपुट घड़ी)/(बिट[5:0}+1)
  • = 8000000/(63+1)
  • = 125000 हर्ट्ज या
  • = 8uS

चूंकि हम केवल हर दूसरे डेटा बाइट का नमूना ले रहे हैं, 8uS के एक PCLK अंतराल के परिणामस्वरूप 16uS नमूना प्राप्त होता है जो प्रसंस्करण के लिए 6uS छोड़कर 1 डेटा बाइट (10uS) संचारित करने के लिए पर्याप्त समय है।

फ्रेम रेट

प्रत्येक वीजीए वीडियो फ्रेम में 784*510 पिक्सल (चित्र तत्व) होते हैं जिनमें से 640*480 पिक्सल प्रदर्शित होते हैं। चूंकि YUV (4:2:2) आउटपुट स्वरूप में प्रति पिक्सेल औसतन 2 डेटा बाइट हैं, इसलिए प्रत्येक फ़्रेम में 784*2*510*8 uS = 6.4 सेकंड का समय लगेगा।

यह कैमरा तेज़ नहीं है !!!

क्षैतिज स्थिति

यदि हम 640 पिक्सेल के अंतर को बनाए रखते हुए HSTART और HSTOP मानों को बदलते हैं तो छवि को क्षैतिज रूप से स्थानांतरित किया जा सकता है।

अपनी छवि को बाईं ओर ले जाने पर, आपके HSTOP मान के लिए HSTART मान से कम होना संभव है!

चिंतित न हों … यह सब काउंटर ओवरफ्लो के साथ करना है जैसा कि फोटो 2 में बताया गया है।

रजिस्टर

OV7670 में गेन, व्हाइट बैलेंस और एक्सपोजर जैसी चीजों को नियंत्रित करने के लिए 201 आठ-बिट रजिस्टर हैं।

एक डेटा बाइट केवल [0] से [255] की सीमा में 256 मानों की अनुमति देता है। यदि हमें अधिक नियंत्रण की आवश्यकता है तो हमें कई रजिस्टरों को कैस्केड करना होगा। दो बाइट हमें ६५५३६ संभावनाएं देते हैं … तीन बाइट्स हमें १६, ७७७, २१६ देते हैं।

फोटो 3 में दिखाया गया 16 बिट एईसी (ऑटोमैटिक एक्सपोजर कंट्रोल) रजिस्टर एक ऐसा उदाहरण है और निम्नलिखित तीन रजिस्टरों के भागों को मिलाकर बनाया गया है।

  • एईसीएचएच [५:०] = एईसी [१५:१०]
  • एईसीएच [7:2] = एईसी [9:2]
  • COM1[1:0] = एईसी[1:0]

सावधान रहें … रजिस्टर के पते एक साथ समूहीकृत नहीं हैं!

दुष्प्रभाव

धीमी फ्रेम दर कई अवांछित दुष्प्रभावों का परिचय देती है:

सही एक्सपोज़र के लिए, OV7670 30 fps (फ्रेम प्रति सेकंड) की फ्रेम दर पर काम करने की अपेक्षा करता है। चूंकि प्रत्येक फ्रेम 6.4 सेकंड ले रहा है, इलेक्ट्रॉनिक शटर सामान्य से 180 गुना अधिक खुला है, जिसका अर्थ है कि जब तक हम कुछ रजिस्टर मूल्यों को नहीं बदलते हैं, तब तक सभी छवियां ओवर-एक्सपोज़ हो जाएंगी।

ओवर-एक्सपोज़र को रोकने के लिए मैंने सभी AEC (ऑटो एक्सपोज़र कंट्रोल) रजिस्टर बिट्स को शून्य पर सेट कर दिया है। फिर भी जब प्रकाश उज्ज्वल हो तो लेंस के सामने एक तटस्थ घनत्व फ़िल्टर की आवश्यकता होती है।

एक लंबा एक्सपोजर भी यूवी डेटा को प्रभावित करता प्रतीत होता है। जैसा कि मुझे अभी तक रजिस्टर संयोजन नहीं मिले हैं जो सही रंग उत्पन्न करते हैं … इसे कार्य प्रगति पर मानें।

ध्यान दें

[1]

डेटा शीट (फोटो 1) में दिखाया गया फॉर्मूला सही है लेकिन रेंज केवल बिट्स [4: 0] दिखाती है?

चरण 5: टाइमिंग वेवफॉर्म

टाइमिंग वेवफॉर्म
टाइमिंग वेवफॉर्म
टाइमिंग वेवफॉर्म
टाइमिंग वेवफॉर्म
टाइमिंग वेवफॉर्म
टाइमिंग वेवफॉर्म

"वीजीए फ्रेम टाइमिंग" आरेख के निचले बाएं कोने में नोट (फोटो 1) पढ़ता है:

YUV/RGB के लिए, tp = 2 x TPCLK

आंकड़े 1, 2, और 3 डेटा शीट को सत्यापित करते हैं और पुष्टि करते हैं कि Omnivision प्रत्येक 2 डेटा बाइट्स को 1 पिक्सेल के बराबर मानता है।

आस्टसीलस्कप तरंग यह भी सत्यापित करते हैं कि रिक्त अंतराल के दौरान HREF कम रहता है।

Fig.4 पुष्टि करता है कि Arduino से XCLK आउटपुट 8MHz है। स्क्वायरवेव के बजाय हम एक साइनवेव देखते हैं, इसका कारण यह है कि सभी विषम हार्मोनिक्स मेरे 20 मेगाहट्र्ज नमूना ऑसिलोस्कोप के लिए अदृश्य हैं।

चरण 6: फ़्रेम धरनेवाला

ढाँचा धरनेवाला
ढाँचा धरनेवाला

OV7670 कैमरा चिप के भीतर इमेज सेंसर में 656*486 पिक्सल की एक सरणी होती है, जिसमें से 640*480 पिक्सल का ग्रिड फोटो के लिए उपयोग किया जाता है।

HSTART, HSTOP, HREF, और VSTRT, VSTOP, VREF रजिस्टर मानों का उपयोग छवि को सेंसर के ऊपर रखने के लिए किया जाता है। यदि छवि सेंसर के ऊपर सही ढंग से स्थित नहीं है, तो आपको एक या अधिक किनारों पर एक काली पट्टी दिखाई देगी जैसा कि "डिज़ाइन नोट्स" अनुभाग में बताया गया है।

OV7670 ऊपरी बाएँ कोने से शुरू होकर एक बार में चित्र की प्रत्येक पंक्ति को एक पिक्सेल स्कैन करता है जब तक कि वह नीचे दाएँ पिक्सेल तक नहीं पहुँच जाता। Arduino बस इन पिक्सल को सीरियल लिंक के माध्यम से पीसी में भेजता है जैसा कि फोटो 1 में दिखाया गया है।

फ्रेम-ग्रैबर्स का कार्य इनमें से प्रत्येक 640*480=307200 पिक्सल को कैप्चर करना और सामग्री को "इमेज" विंडो में प्रदर्शित करना है

प्रसंस्करण 3 कोड की निम्नलिखित चार पंक्तियों का उपयोग करके इसे प्राप्त करता है !!

कोड लाइन 1:

बाइट बाइटबफ़र = नया बाइट [मैक्सबाइट्स + 1]; // जहां मैक्सबाइट्स=307200

इस कथन में अंतर्निहित कोड बनाता है:

  • एक ३०७२०१ बाइट सरणी जिसे "बाइटबफ़र [३०७२०१]" कहा जाता है
  • अतिरिक्त बाइट समाप्ति (लाइनफीड) वर्ण के लिए है।

कोड लाइन 2:

आकार (640, 480);

इस कथन में अंतर्निहित कोड बनाता है:

  • "चौड़ाई = 640;" नामक एक चर
  • "ऊंचाई = 480" नामक एक चर;
  • एक ३०७२०० पिक्सेल सरणी जिसे "पिक्सेल [३०७२००]" कहा जाता है
  • एक 640*480 पिक्सेल "छवि" विंडो जिसमें पिक्सेल सरणी की सामग्री प्रदर्शित होती है। यह "इमेज" विंडो 60 एफपीएस की फ्रेम दर पर लगातार रिफ्रेश होती है।

कोड लाइन 3:

बाइटकाउंट = myPort.readBytesUntil(lf, byteBuffer);

इस कथन में अंतर्निहित कोड:

  • आने वाले डेटा को स्थानीय रूप से तब तक बफ़र करता है जब तक कि वह "lf" (लाइनफ़ीड) वर्ण नहीं देखता।
  • जिसके बाद यह स्थानीय डेटा के पहले 307200 बाइट्स को बाइटबफर सरणी में डंप करता है।
  • यह प्राप्त बाइट्स की संख्या (307201) को "बाइटकाउंट" नामक एक चर में भी सहेजता है।

कोड लाइन 4:

पिक्सेल = रंग (बाइटबफ़र );

जब अगली-पाश के लिए रखा जाता है, तो इस कथन में अंतर्निहित कोड:

  • "बाइटबफ़र " सरणी की सामग्री को "पिक्सेल " सरणी में कॉपी करता है
  • जिसकी सामग्री छवि विंडो में दिखाई देती है।

कुंजी स्ट्रोक:

फ़्रेम-ग्रैबर निम्नलिखित कीस्ट्रोक्स को पहचानता है:

  • 'सी' = छवि पर कब्जा
  • 's' = इमेज को फाइल में सेव करें।

चरण 7: सॉफ्टवेयर

यदि पहले से स्थापित नहीं है तो निम्न में से प्रत्येक सॉफ्टवेयर पैकेज को डाउनलोड और इंस्टॉल करें:

  • https://www.arduino.cc/en/main/software. से "Arduino"
  • https://java.com/en/download/ [1] से "जावा 8"
  • https://processing.org/download/ से "प्रोसेसिंग 3"

Arduino स्केच स्थापित करना:

  • सभी OV7670 जम्पर तारों को हटा दें [2]
  • USB केबल को अपने Arduino से कनेक्ट करें
  • "OV7670_camera_mono_V2.ino" (संलग्न) की सामग्री को एक Arduino "स्केच" में कॉपी करें और सहेजें।
  • स्केच को अपने Arduino पर अपलोड करें।
  • Arduino को अनप्लग करें
  • अब आप सुरक्षित रूप से OV7670 जम्पर तारों को फिर से कनेक्ट कर सकते हैं
  • USB केबल को फिर से कनेक्ट करें।

प्रसंस्करण स्केच स्थापित करना और चलाना

  • "OV7670_camera_mono_V2.pde" (संलग्न) की सामग्री को एक प्रसंस्करण "स्केच" में कॉपी करें और सहेजें।
  • ऊपर-बाएँ "रन" बटन पर क्लिक करें … एक काली छवि विंडो दिखाई देगी
  • "ब्लैक" इमेज-विंडो पर क्लिक करें
  • छवि कैप्चर करने के लिए "c" कुंजी दबाएं। (लगभग 6.4 सेकंड)।
  • अपने प्रसंस्करण फ़ोल्डर में छवि को सहेजने के लिए "एस" कुंजी दबाएं
  • चरण 4 और 5 दोहराएं
  • प्रोग्राम से बाहर निकलने के लिए "स्टॉप" बटन पर क्लिक करें।

टिप्पणियाँ

[1]

प्रसंस्करण 3 के लिए जावा 8 की आवश्यकता है

[2]

यह आपके OV7670 कैमरा चिप को नुकसान पहुंचाने से बचने के लिए "केवल एक बार" सुरक्षा कदम है।

जब तक आपके Arduino पर "OV7670_camera_mono.ini" स्केच अपलोड नहीं किया जाता है, तब तक आंतरिक पुल-अप प्रतिरोधक 5 वोल्ट से जुड़े होते हैं, साथ ही संभावना है कि कुछ Arduino डेटा लाइनें 5 वोल्ट आउटपुट हो सकती हैं … जिनमें से सभी घातक हैं 3v3 वोल्ट OV7670 कैमरा चिप।

एक बार Arduino प्रोग्राम हो जाने के बाद इस चरण को दोहराने की कोई आवश्यकता नहीं है और रजिस्टर मानों को सुरक्षित रूप से बदला जा सकता है।

चरण 8: एक रंगीन छवि प्राप्त करना

एक रंगीन छवि प्राप्त करना
एक रंगीन छवि प्राप्त करना
एक रंग छवि प्राप्त करना
एक रंग छवि प्राप्त करना
एक रंग छवि प्राप्त करना
एक रंग छवि प्राप्त करना

निम्नलिखित सॉफ्टवेयर विशुद्ध रूप से प्रायोगिक है और इस उम्मीद में पोस्ट किया गया है कि कुछ तकनीकें उपयोगी साबित होंगी। रंग उल्टे प्रतीत होते हैं … मुझे अभी तक सही रजिस्टर सेटिंग्स नहीं मिली हैं। अगर आपको कोई समाधान मिल जाए तो कृपया अपने परिणाम पोस्ट करें।

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

OV7670 RGB (लाल, हरा, नीला) रंग जानकारी को YUV (4:2:2) में बदलने के लिए निम्नलिखित सूत्रों का उपयोग करता है: [1]

  • वाई = 0.31 * आर + 0.59 * जी + 0.11 * बी
  • यू = बी - वाई
  • वी = आर - वाई
  • सीबी = 0.563*(बी-वाई)
  • सीआर = 0.713 * (आर-वाई)

YUV (4:2:2) को वापस RGB रंग में बदलने के लिए निम्नलिखित सूत्रों का उपयोग किया जा सकता है: [2]

  • आर = वाई + 1.402 * (सीआर - 128)
  • जी = वाई - 0.344136 * (सीबी -128) - 0.714136 * (सीआर -128)
  • बी = वाई + 1.772 * (सीबी -128)

संलग्न सॉफ्टवेयर केवल मोनोक्रोम सॉफ्टवेयर का एक विस्तार है:

  • Arduino को "c" कैप्चर अनुरोध भेजा जाता है
  • Arduino पीसी को सम संख्या (मोनोक्रोम) बाइट्स भेजता है
  • पीसी इन बाइट्स को एक सरणी में सहेजता है
  • Arduino अगला पीसी को विषम संख्या (क्रोमा) बाइट्स भेजता है।
  • इन बाइट्स को दूसरी सरणी में सहेजा जाता है … अब हमारे पास पूरी छवि है।
  • उपरोक्त सूत्र अब चार UYVY डेटा बाइट्स के प्रत्येक समूह पर लागू होते हैं।
  • परिणामी रंग पिक्सेल तब "पिक्सेल " सरणी में रखे जाते हैं
  • पीसी "पिक्सेल " सरणी को स्कैन करता है और "छवि" विंडो में एक छवि दिखाई देती है।

प्रोसेसिंग 3 सॉफ्टवेयर संक्षेप में प्रत्येक स्कैन और अंतिम परिणाम प्रदर्शित करता है:

  • फोटो 1 स्कैन से यू और वी क्रोमा डेटा दिखाता है 1
  • फोटो 2 स्कैन 2. से Y1 और Y2 ल्यूमिनेन्स डेटा दिखाता है
  • फोटो 3 रंगीन छवि दिखाता है … केवल एक चीज गलत है … बैग हरा होना चाहिए !!

इस कार्यक्रम को हल करने के बाद मैं नया कोड पोस्ट करूंगा …

सन्दर्भ:

[1]

www.haoyuelectronics.com/Attachment/OV७६७०%… (पृष्ठ ३३)

[2]

en.wikipedia.org/wiki/YCbCr (जेपीईजी रूपांतरण)

मेरे अन्य अनुदेशों को देखने के लिए यहां क्लिक करें।

सिफारिश की: