विषयसूची:
- चरण 1: पूर्वापेक्षाएँ
- चरण 2: पूर्वापेक्षाएँ (नहीं)
- चरण 3: पूर्वापेक्षाएँ (नहीं)
- चरण 4: पूर्वापेक्षाएँ (नहीं)
- चरण 5: रनिंग कोड की तैयारी के लिए मैटलैब को साफ करें
- चरण 6: डायबिटिक रेटिनोपैथी के लक्षणों वाली 10 सामान्य आंखों की छवियों और 10 छवियों का चयन करें
- चरण 7: डायबिटिक रेटिनोपैथी के लक्षणों वाली 10 सामान्य आंखों की छवियों और 10 छवियों का चयन करें (नहीं)
- चरण 8: 2 चर बनाएं (सामान्य और निदान) और प्रत्येक को 0 के बराबर सेट करें
- चरण 9: सामान्य छवियों को स्वचालित रूप से अपलोड करने के लिए लूप के लिए बनाएं
- चरण 10: सामान्य छवियों को स्वचालित रूप से अपलोड करने के लिए लूप के लिए बनाएं (नहीं)
- चरण 11: छवि की सीमाओं को क्रॉप करें
- चरण 12: ग्रे-स्केल छवि बनाएं
- चरण 13: एक विपरीत छवि बनाएं
- चरण 14: कंट्रास्ट छवि बढ़ाएँ
- चरण 15: एक औसत फ़िल्टर बनाएं
- चरण 16: औसत फ़िल्टर को विपरीत छवि के साथ संयोजित करें
- चरण 17: पिक्सेल घटाकर एक नया मीन मास्क बनाएं
- चरण 18: एक बाइनरी फ़िल्टर की गई छवि बनाएं
- चरण 19: फ़िल्टर की गई छवियों में पाए जाने वाले छोटे बूँदें निकालें
- चरण 20: डिस्क संरचना तत्व बनाएं
- चरण 21: मॉर्फोलॉजिकल क्लोज ऑपरेशंस करें
- चरण 22: कम से कम 8. की कनेक्टिविटी वाली वस्तुओं का पता लगाएं
- चरण 23: कनेक्टेड पिक्सेल की अधिकतम संख्या ज्ञात करें
- चरण 24: अधिकतम पिक्सेल मान 0 पर सेट करें और पिक्सेल ढूंढें> = 26 पिक्सेल कनेक्टिविटी
- चरण 25: छवि में रक्त वाहिकाओं को हटा दें
- चरण 26: चित्र प्रदर्शन
- चरण 27: वाहिकाओं को हटा दें और रक्त की बूँदें गिनें
- चरण 28: पहचाने गए रक्त के थक्कों की संख्या के आधार पर रेटिना की छवि का निदान करें
- चरण 29: यदि 5 से अधिक बूँदें हैं …
- चरण 30: छवि अंक मानों के साथ सामान्य छवियों के लिए फ़िल्टरिंग प्रक्रिया को 2 और 3 के रूप में दोहराएं
- चरण 31: निदान छवियों के लिए पूरी प्रक्रिया को दोहराएं
- चरण 32: सांख्यिकीय विश्लेषण
- चरण 33: विश्वास अंतराल ढूँढना
वीडियो: MATLAB के माध्यम से मधुमेह संबंधी रेटिनोपैथी का स्वचालित निदान: 33 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
(ऊपर कोड रूपरेखा देखें)
मधुमेह संबंधी रेटिनोपैथी उच्च रक्त शर्करा के स्तर के कारण मधुमेह से संबंधित नेत्र रोग है। उच्च रक्त शर्करा के स्तर के कारण रेटिना में रक्त वाहिकाएं सूज जाती हैं, जिससे रक्त वाहिकाएं बढ़ जाती हैं और यहां तक कि पोत का रिसाव भी हो जाता है, जिससे रेटिना की छवियों में काले धब्बे हो जाते हैं। इस कोड के साथ, हमारा लक्ष्य पृष्ठभूमि मधुमेह रेटिनोपैथी के संकेतक के रूप में रक्त वाहिका रिसाव स्पॉट की उपस्थिति का उपयोग करना है, हालांकि वास्तविक दुनिया में और निदान तकनीकों की आवश्यकता होगी। इस कोड का लक्ष्य रेटिना छवियों में काले धब्बे के माध्यम से दिखाए गए मधुमेह रेटिनोपैथी के लक्षणों की पहचान करने के लिए छवि प्रसंस्करण और रेटिना छवियों का निदान स्वचालित करना है।
10 सामान्य रेटिनल छवियों और 10 निदान रेटिनल छवियों को एक कोड के माध्यम से संसाधित किया गया था जो पहले छवियों को पढ़ता और फ़िल्टर करता है और फिर यह निर्धारित करने के लिए कि क्या डायबिटिक रेटिनोपैथी के लक्षण मौजूद हैं, यह निर्धारित करने के लिए डार्क स्पॉट की मात्रा निर्धारित करता है। परिणाम तब दर्शक व्याख्या के लिए कमांड विंडो पर मुद्रित होते हैं।
चरण 1: पूर्वापेक्षाएँ
1. सुनिश्चित करें कि आपने अपने कंप्यूटर पर MATLAB प्रोग्राम डाउनलोड किया है।
2. लिंक में मिली txt फाइल को डाउनलोड करें। (MATLAB कोड के समान निर्देशिका में सहेजने के लिए 'ctrl+s' दबाएं)
चरण 2: पूर्वापेक्षाएँ (नहीं)
4. MATLAB खोलें और कमांड विंडो में 'uiimport' टाइप करें।
5. आधिकारिक डायग्नोसिस.txt फ़ाइल का चयन करें और इसे सेल मैट्रिक्स के रूप में MATLAB में आयात करें।
6. सुनिश्चित करें कि आप कार्यक्षेत्र में 'आधिकारिक निदान' को एक चर के रूप में देखते हैं।
चरण 3: पूर्वापेक्षाएँ (नहीं)
7. फ़ंक्शन ModWald.m डाउनलोड करें, जो उपरोक्त कोड से प्राप्त कर सकता है या इसे कैनवास से डाउनलोड कर सकता है।
(प्रोफेसर किंग और प्रोफेसर चोई द्वारा प्रदान किया गया कोड)
चरण 4: पूर्वापेक्षाएँ (नहीं)
8. स्टार प्रोजेक्ट के डेटा अनुभाग से 400 कच्ची छवियां डाउनलोड करें।
चरण 5: रनिंग कोड की तैयारी के लिए मैटलैब को साफ करें
कोड में जोड़ें:
1. सभी को बंद करें (पहले खोली गई सभी छवियों को बंद करता है)
2. clearvars - आधिकारिक निदान को छोड़कर (आधिकारिक निदान txt फ़ाइल को छोड़कर सभी चर साफ़ करता है जो पहले आयात किया गया था)
3. सीसीएलसी (कमांड विंडो को साफ करता है)
चरण 6: डायबिटिक रेटिनोपैथी के लक्षणों वाली 10 सामान्य आंखों की छवियों और 10 छवियों का चयन करें
1. डायग्नोसिस टेक्स्ट फाइल लें और इमेज के नाम निकालें। ये नाम टेक्स्ट फ़ाइल के पहले कॉलम में समाहित हैं ताकि उन्हें 'आधिकारिक निदान (:, 1)' टाइप किया जा सके। छवि नामों का मैट्रिक्स एक चर, "all_image_numbers" को सौंपा गया था
2. सेल2मैट फ़ंक्शन का उपयोग करके all_image_numbers वेरिएबल को सेल ऐरे से मैट्रिक्स ऐरे में कनवर्ट करें
चरण 7: डायबिटिक रेटिनोपैथी के लक्षणों वाली 10 सामान्य आंखों की छवियों और 10 छवियों का चयन करें (नहीं)
3. कोड चलाने के लिए 10 सामान्य नेत्र छवियों का चयन करें। इस मामले में चुने गए चित्र 278, 199, 241, 235, 35, 77, 82, 164, 239, 170 थे।
इन नंबरों को एक मैट्रिक्स में रखें और उन्हें एक वेरिएबल को असाइन करें जिसे छवियों को लोड करते समय बुलाया जाएगा।
4. रेटिनल छवियों के लिए चरण 3 दोहराएं जिन्हें डायबिटिक रेटिनोपैथी का निदान किया गया है। इस मामले में चुने गए चित्र 139, 137, 136, 135, 133, 140, 141, 116, 157, 188 थे।
चरण 8: 2 चर बनाएं (सामान्य और निदान) और प्रत्येक को 0 के बराबर सेट करें
लूप नंबरों को इनिशियलाइज़ करने के लिए लूप के लिए इन वेरिएबल्स को बनाएं।
चरण 9: सामान्य छवियों को स्वचालित रूप से अपलोड करने के लिए लूप के लिए बनाएं
1. लूप के लिए बनाएं
2. एक गणना चर (i, इस मामले में) को 1-10 मानों के मैट्रिक्स पर सेट करें। इस गणना चर का उपयोग प्रत्येक छवि को अलग-अलग कॉल करने के लिए किया जाएगा
3. num2str फ़ंक्शन का उपयोग करके छवि नाम को एक स्ट्रिंग से एक संख्या में निकालने और परिवर्तित करने के लिए छवियों के मैट्रिक्स में i तत्व लें।
अंक फ़ंक्शन का उपयोग करके छवि के नाम में मौजूद अंकों की संख्या ज्ञात करें। इस मान को एक वेरिएबल, डिजिट्स_नॉर्मल को असाइन करें। यह संख्या एकल अंकों की संख्या के लिए 1, दोहरे अंकों की संख्या के लिए 2 और तिहरे अंकों की संख्या के लिए 3 होनी चाहिए। इस जानकारी का उपयोग छवियों को स्वचालित रूप से कॉल करने के लिए किया जाएगा।
चरण 10: सामान्य छवियों को स्वचालित रूप से अपलोड करने के लिए लूप के लिए बनाएं (नहीं)
3. एक if स्टेटमेंट बनाएं जिसमें पिछले चरणों से सभी तीन संभावनाएं हों। यदि छवि के नाम में 1 अंक है, तो छवि को "im000" कहा जाएगा, यदि इसमें 2 अंक हैं, तो छवि को "im00" कहा जाएगा, और यदि इसमें 3 है तो छवि को "im0" कहा जाएगा।
4. प्रत्येक इफ स्टेटमेंट के तहत, संबंधित के तहत "im" को इरेड करने के लिए एक वैरिएबल असाइन करें, यदि स्टेटमेंट उचित संख्या में शून्य (जैसा कि ऊपर वर्णित है), उसके बाद i।
चरण 11: छवि की सीमाओं को क्रॉप करें
मूल छवि लें और काली सीमाओं को खत्म करने के लिए एक इम्क्रॉप फ़िल्टर लागू करें और एक चर I_crop को असाइन करें। फसल आयत एक मैट्रिक्स [९५, ९५, ५००, ४१०] का उपयोग करके निर्दिष्ट किया गया है।
चरण 12: ग्रे-स्केल छवि बनाएं
क्रॉप की गई छवि लें और छवि को ग्रेस्केल में बदलने के लिए rbg2gray फ़िल्टर लागू करें। इस छवि को चर I2 पर असाइन करें।
चरण 13: एक विपरीत छवि बनाएं
छवि I2 लें और तीव्रता मानों को फिर से स्केल करने के लिए imadjust का उपयोग करें।
[०.२, ०.७] के दायरे में आने वाले मानों को लें और उन्हें [०, १] पर फिर से स्केल करें। छवि को उज्जवल बनाने के लिए गामा को 0.8 पर सेट किया गया है। नई छवि को I_adjusted पर असाइन करें।
चरण 14: कंट्रास्ट छवि बढ़ाएँ
I_adjusted इमेज लें और इसके कंट्रास्ट को बढ़ाने के लिए एडेप्टहिस्टेक फ़ंक्शन का उपयोग करें।
एडेप्टिस्टेक सिंटैक्स के लिए छवि नाम, I_adjusted, 'numTiles', numTiles का आकार, 'nBins', और डिब्बे की संख्या की आवश्यकता होती है। numTiles का आकार [8 8] पर सेट किया गया है, छवि को 8x8 टाइलों में विभाजित किया गया है और डिब्बे की संख्या 28 पर सेट की गई है। छवि को I_constrast पर असाइन करें।
चरण 15: एक औसत फ़िल्टर बनाएं
fspecial फ़ंक्शन का उपयोग करके 'मीनफिल्ट' नाम का एक वेरिएबल बनाएं। औसत फ़िल्टर बनाने के लिए इनपुट 'औसत फ़ंक्शन' और स्लाइडिंग विंडो आकार के लिए [९० ९०] डालें।
चरण 16: औसत फ़िल्टर को विपरीत छवि के साथ संयोजित करें
मास्क_मीन नाम का एक नया वेरिएबल बनाएं और I_contrast छवि लेने के लिए और पहले बनाए गए माध्य फ़िल्टर को लागू करने के लिए imfilter फ़ंक्शन का उपयोग करें।
चरण 17: पिक्सेल घटाकर एक नया मीन मास्क बनाएं
Mask_mean2 नाम का एक वेरिएबल बनाएं और I_contrast में प्रत्येक पिक्सेल के मान को mask_mean में संबंधित पिक्सेल से घटाने के लिए imsubtract फ़ंक्शन का उपयोग करें।
चरण 18: एक बाइनरी फ़िल्टर की गई छवि बनाएं
imbinarize का उपयोग करके ग्रेस्केल छवियों को श्वेत और श्याम में बदलें। इनपुट मास्क_मीन 2, 'अनुकूली', 'अग्रभूमि ध्रुवीयता', 'अंधेरा', 'संवेदनशीलता', 0.6। इस नई छवि को mask_binarize पर असाइन करें।
चरण 19: फ़िल्टर की गई छवियों में पाए जाने वाले छोटे बूँदें निकालें
मास्क_बिनाराइज़ पर bwareaopen फ़ंक्शन का उपयोग करके 100 पिक्सेल से कम कनेक्टिविटी वाले ऑब्जेक्ट निकालें और थ्रेशोल्ड मान को 100 पर सेट करें। चर को bw के रूप में असाइन करें।
चरण 20: डिस्क संरचना तत्व बनाएं
स्ट्रेल फ़ंक्शन का उपयोग करके डिस्क संरचना तत्व (2 के त्रिज्या के साथ) बनाएं। इसे असाइन करें।
चरण 21: मॉर्फोलॉजिकल क्लोज ऑपरेशंस करें
बीडब्ल्यू लें और वस्तु पर एक रूपात्मक क्लोज ऑपरेशन करने के लिए संरचनात्मक तत्व पर इम्क्लोज़ फ़ंक्शन लागू करें।
चरण 22: कम से कम 8. की कनेक्टिविटी वाली वस्तुओं का पता लगाएं
छवि में कम से कम 8 की कनेक्टिविटी वाली वस्तुओं को खोजने के लिए bw लें और bwconncomp का उपयोग करें। नंबर आउटपुट को cc_1 पर असाइन करें।
चरण 23: कनेक्टेड पिक्सेल की अधिकतम संख्या ज्ञात करें
सीसी में प्रत्येक सेल पर "न्यूमेल" फ़ंक्शन करने के लिए सेलफन फ़ंक्शन का उपयोग करें। यह PixelIdxList सेल में तत्वों की संख्या पाता है। "numPixels" को मान असाइन करें।
numPIxels में अधिकतम मान ज्ञात कीजिए। सबसे बड़ा अधिकतम "सबसे बड़ा" और अधिकतम मान का सूचकांक "idx" पर असाइन करें।
चरण 24: अधिकतम पिक्सेल मान 0 पर सेट करें और पिक्सेल ढूंढें> = 26 पिक्सेल कनेक्टिविटी
पिक्सेल को "bw" छवि में सबसे बड़े मानों के साथ 0 पर सेट करें, जिससे पिक्सेल काला हो जाए।
bwconncomp का उपयोग करके छवि में कम से कम 26 पिक्सेल की कनेक्टिविटी वाले ऑब्जेक्ट खोजें। चर cc_1 को असाइन करें।
चरण 25: छवि में रक्त वाहिकाओं को हटा दें
[०, ०.९] की सीमा के साथ bwpropfilt फ़ंक्शन का उपयोग करके छवि में मौजूद रक्त वाहिकाओं को अभी भी निकालें।
[०.९, १] को बाहर रखा गया है क्योंकि १ के करीब के मान एक रेखा को दर्शाते हैं। "निकालें वेसल्स" को असाइन करें।
चरण 26: चित्र प्रदर्शन
प्रत्येक फ़िल्टर की गई छवि को सबप्लॉट में प्रदर्शित करें। इम्शो। 'बॉर्डर' और 'टाइट' इनपुट के साथ, प्रत्येक छवि को एक सबप्लॉट संरचना में प्रदर्शित करता है। प्रत्येक छवि में एक शीर्षक जोड़ें ताकि यह पता चल सके कि किस फ़िल्टर का उपयोग किया गया था।
चरण 27: वाहिकाओं को हटा दें और रक्त की बूँदें गिनें
1. छवि में वस्तुओं के केन्द्रक की पहचान करने के लिए "निकालें वेसल्स" लें और रीजन प्रॉप्स में 'सेंट्रोइड' फीचर लागू करें। इन वस्तुओं को छवि में मौजूद रक्त के थक्कों के अनुरूप होना चाहिए।
2. केन्द्रक मैट्रिक्स की लंबाई लेकर पहचाने गए रक्त के थक्कों की संख्या की गणना करें।
चरण 28: पहचाने गए रक्त के थक्कों की संख्या के आधार पर रेटिना की छवि का निदान करें
पहचान किए गए रक्त के थक्कों की संख्या के आधार पर छवि का निदान करने के लिए बयानों का उपयोग करें।
यदि पहचाने गए केन्द्रक की संख्या 5 से कम या उसके बराबर थी, तो छवि की पहचान सामान्य के रूप में की गई थी।
यदि सेंट्रोइड्स की संख्या 5 से अधिक थी, तो छवि को डायबिटिक रेटिनोपैथी का निदान किया गया था।
परिणाम fprintf का उपयोग करके कमांड विंडो पर मुद्रित होता है।
चरण 29: यदि 5 से अधिक बूँदें हैं …
किसी अन्य कथन के रूप में निदान छवियों के लिए ऊपर दिए गए निर्देशों को दोहराएं। बूँदों की संख्या 5 से अधिक होने पर यह भाग चलेगा।
अगर कथन समाप्त करें।
चरण 30: छवि अंक मानों के साथ सामान्य छवियों के लिए फ़िल्टरिंग प्रक्रिया को 2 और 3 के रूप में दोहराएं
मूल के शेष के लिए प्रक्रिया को दोहराएं यदि कथन जब अंक (छवि संख्या में अंकों की संख्या) 2 और 3 के बराबर है। यह सामान्य छवियों के लिए लूप के लिए पूरा करता है।
लूप के लिए समाप्त करें।
चरण 31: निदान छवियों के लिए पूरी प्रक्रिया को दोहराएं
मैट्रिक्स "numbers_to_extract_diagnosed" द्वारा सूचीबद्ध निदान छवियों का उपयोग करके पूरी प्रक्रिया को दोहराएं।
सुनिश्चित करें कि प्रत्येक आकृति (i) को देखें और इसे आकृति (i+10) में बदलें ताकि निदान किए गए आंकड़े 11 से 20 की छवियों के रूप में दिखाई दें।
चरण 32: सांख्यिकीय विश्लेषण
1. 'Actual_Diagnosis_Matrix' का उपयोग परिणामों की तुलना txt फ़ाइल में पाए गए आधिकारिक निदान से करने के लिए किया जाता है। पहले १० शून्य इंगित करते हैं कि पहले १० चित्र सामान्य होने चाहिए। अंतिम १० से संकेत मिलता है कि अंतिम १० छवियों को डायबिटिक रेटिनोपैथी के रूप में वर्गीकृत किया जाना चाहिए।
2. 'नंबर_करेक्ट' बनाने के लिए इस्तेमाल किया जाने वाला दोहरा बराबर चिह्न 'एक्चुअल_डायग्नोसिस_मैट्रिक्स' के संबंधित तत्वों के मूल्य की तुलना लूप से बनाए गए 'डायग्नोसिस_मैट्रिक्स' से करके एक तार्किक सरणी बनाता है।
निदान से मेल खाने वाले प्रत्येक तत्व के लिए 1 जोड़ा जाएगा, जिसका अर्थ है कि उस छवि का सही निदान किया गया कोड। यदि यह गलत है तो यह मैट्रिक्स में 0 जोड़ देगा।
फिर, उसका योग लेने से सभी जुड़ जाते हैं। दूसरे शब्दों में, यह सही ढंग से निदान की गई छवियों का योग पाता है।
3. 'फाइनल_परसेंटेज_करेक्ट' इस बात का परिकलित प्रतिशत है कि डायबिटिक रेटिनोपैथी का निदान कोड कितना सही है। सही निदान की गई छवियों की संख्या को 20 (चित्रों की कुल संख्या) से विभाजित किया जाता है और सफल निदान का प्रतिशत ज्ञात करने के लिए 100 से गुणा किया जाता है।
चरण 33: विश्वास अंतराल ढूँढना
1. सुनिश्चित करें कि आपने इसे एक फ़ंक्शन के रूप में कॉल करने के लिए ModWald.m डाउनलोड किया है। फ़ंक्शन के बिना, आपको स्वयं संशोधित वाल्ड पद्धति का उपयोग करके आत्मविश्वास अंतराल की गणना करनी होगी।
2. मोडवाल्ड फ़ंक्शन में 2 इनपुट होते हैं जहां पहला सही ढंग से पहचानी गई छवियों की संख्या है, और दूसरा छवियों की कुल मात्रा है।
3. मोडवाल्ड फ़ंक्शन नमूना डेटा की सटीकता के लिए अनुपात के विश्वास अंतराल की निचली और ऊपरी सीमाओं को आउटपुट करेगा। दूसरे शब्दों में, यह आपको प्रतिशत का अंतराल देगा जहां कोड की सटीकता का सही प्रतिशत झूठ होगा।
4. कमांड विंडो पर आंकड़ों और कॉन्फिडेंस इंटरवल को आउटपुट करने के लिए नीचे दिए गए fprintf का उपयोग करें।
> fprintf('%.0f प्रतिशत रेटिना छवियों का आधिकारिक निदान के अनुसार सही ढंग से निदान किया गया था। \n\n', final_percentage_correct)
> fprintf('सही प्रतिशत जिस पर हमारा कोड डायबिटिक रेटिनोपैथी का सही निदान करेगा\n २० सैंपल इमेज के आधार पर [%.3f, %.3f] की सीमा में गिरेगा \n', lower_bound, upper_bound)
सिफारिश की:
पार्किंग सहायता आसान मरम्मत / निदान: 4 कदम
पार्किंग सहायता आसान मरम्मत / निदान: ठीक है, शुरू करें, मेरे पास 2010 शेवरले हिमस्खलन है और इसके पीछे के बम्पर में 4 पार्किंग सहायता सेंसर हैं। इस अट्रैक्टिव का उपयोग मेरी जानकारी के अनुसार वाहन पर किया जा सकता है, जिस मौसम में आपके सामने या री या दोनों हों। तो मैं अपने पसंदीदा में गया
एलेक्सा के माध्यम से ESP8266 या ESP32 के माध्यम से घरेलू उपकरणों को नियंत्रित करें: 8 कदम
एलेक्सा के माध्यम से ESP8266 या ESP32 के माध्यम से घरेलू उपकरणों को नियंत्रित करें: अरे, क्या चल रहा है, दोस्तों! यहाँ CETech से आकर्ष। मेरा यह प्रोजेक्ट आपके जीवन को आसान बनाने में मदद करने वाला है और आप एलेक्सा को सिर्फ एक कमांड देकर अपने घर में उपकरणों को नियंत्रित करने के बाद एक राजा की तरह महसूस करने जा रहे हैं। इस p के पीछे मुख्य बात
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): 8 चरण
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): अल्ट्रासोनिक ध्वनि ट्रांसड्यूसर L298N डीसी महिला एडाप्टर बिजली की आपूर्ति एक पुरुष डीसी पिन के साथ Arduino UNOBreadboardयह कैसे काम करता है: सबसे पहले, आप Arduino Uno पर कोड अपलोड करते हैं (यह डिजिटल से लैस एक माइक्रोकंट्रोलर है और कोड (C++) कन्वर्ट करने के लिए एनालॉग पोर्ट
हार्ड ड्राइव: निदान, समस्या निवारण और रखरखाव: 3 चरण
हार्ड ड्राइव: निदान, समस्या निवारण और रखरखाव: हार्ड ड्राइव क्या है? - सीधे शब्दों में कहें, हार्ड ड्राइव वह है जो आपके सभी डेटा को संग्रहीत करती है। इसमें हार्ड डिस्क होती है, जहां आपकी सभी फाइलें और फोल्डर भौतिक रूप से स्थित होते हैं। जानकारी को डिस्क पर चुंबकीय रूप से संग्रहीत किया जाता है, इसलिए यह ड्राइव पर तब भी बनी रहती है जब
होम ऑटोमेशन: Tiva TM4C123G का उपयोग करके ब्लूटूथ के माध्यम से डिमर नियंत्रण के साथ स्वचालित स्विच बोर्ड: 7 कदम
होम ऑटोमेशन: Tiva TM4C123G का उपयोग करके ब्लूटूथ के माध्यम से डिमर कंट्रोल के साथ स्वचालित स्विच बोर्ड: आजकल, हमारे पास हमारे टेलीविज़न सेट और अन्य इलेक्ट्रॉनिक सिस्टम के लिए रिमोट कंट्रोल हैं, जिसने हमारे जीवन को वास्तव में आसान बना दिया है। क्या आपने कभी होम ऑटोमेशन के बारे में सोचा है जो ट्यूबलाइट, पंखे और अन्य बिजली को नियंत्रित करने की सुविधा देगा