- படங்கள் என்றால் என்ன?
- கணினி படங்களை எவ்வாறு சேமிக்கிறது
- ஒரு இயந்திரம் படங்களை அடையாளம் காண்பது ஏன் கடினம்
- OpenCV இன் பயன்பாடு மற்றும் பயன்பாடுகள்
- பைதான் மற்றும் அனகோண்டாவுடன் ஓபன்சிவியை நிறுவுகிறது
- OpenCV இல் படங்களைத் திறந்து சேமிக்கிறது
- ஓபன்சிவியில் சாம்பல் அளவிடுதல் படம்
- வண்ண இடைவெளிகள்
- RGB படத்தின் தனிப்பட்ட கூறுகளை ஆராய்தல்
- படத்தை தனிப்பட்ட RGB கூறுகளாக மாற்றுகிறது
- படத்தின் ஹிஸ்டோகிராம் பிரதிநிதித்துவம்
- OpenCV ஐப் பயன்படுத்தி படங்கள் மற்றும் வடிவங்களை வரைதல்
கலை பார்ப்பது ஒரு வழி, அவர்கள் பார்ப்பது நம்புவதாகச் சொல்கிறார்கள், ஆனால் அதற்கு நேர்மாறானது உண்மை, நம்புவது பார்க்கிறது மற்றும் பார்வை பரிசு இல்லாமல் இந்த உலகில் வாழ்வதை கற்பனை செய்வது மிகவும் கடினம் - நம் கண்கள், இது ஒரு குழந்தையாக இருப்பது எவ்வளவு அற்புதமானது நம் கண்கள் திறந்தவுடன் நாம் உலகைப் பார்க்கிறோம், நம்மைச் சுற்றியுள்ள உலகத்தை அடையாளம் காணவும் பார்க்கவும் ஆரம்பித்தோம், ஆனால் நேரம் செல்ல செல்ல, அதே அற்புதமான அனுபவம் ஒரு சாதாரணமானதாக மாறும். ஆனால் தொழில்நுட்பத்துடன் நாம் முன்னேறும்போது, இயந்திரங்களும் அதைப் பார்க்கவும் புரிந்துகொள்ளவும் கூடிய ஒரு விளிம்பில் இருக்கிறோம். தற்போது, உங்கள் தொலைபேசியை உங்கள் முகத்துடன் திறந்தால் அது ஒரு அறிவியல் புனைகதை என்று தெரியவில்லை, ஆனால் இயந்திர பார்வையின் வளர்ச்சியின் கதை 20 ஆண்டுகளுக்கு மேலாக தேதியிடப்பட்டுள்ளது.
இந்தத் துறையில் ஆரம்ப முறையான படி 1999 இல் ஒரு இன்டெல் முயற்சியில் திரும்பப் பெறப்பட்டது, அனைத்து ஆராய்ச்சிகளும் ஓபன் சி.வி (திறந்த மூல கணினி பார்வை) இன் கீழ் ஒத்துழைக்கப்பட்டன , முதலில் சி ++ இல் எழுதப்பட்டது, அதன் முதல் பெரிய வெளியீடு 1.0 இல் 2006 வினாடி 2009 இல், 2015 இல் மூன்றாவது மற்றும் 2018 இல் நான்காவது இடத்தில் உள்ளது. இப்போது ஓபன்சிவி சி ++, பைதான் மற்றும் ஜாவா இடைமுகங்களைக் கொண்டுள்ளது மற்றும் விண்டோஸ், லினக்ஸ், மேக் ஓஎஸ், iOS மற்றும் ஆண்ட்ராய்டை ஆதரிக்கிறது. எனவே பைதான் மற்றும் லினக்ஸ் சூழலுடன் ராஸ்பெர்ரி பையில் இதை எளிதாக நிறுவ முடியும். முகம் கண்டறிதல், முகம் பூட்டு, பொருள் கண்காணிப்பு, கார் எண் தட்டு கண்டறிதல், வீட்டு பாதுகாப்பு அமைப்பு போன்ற பல நிகழ்நேர பட செயலாக்க பயன்பாடுகளை உருவாக்க ஓபன்சிவி மற்றும் இணைக்கப்பட்ட கேமரா கொண்ட ராஸ்பெர்ரி பை பயன்படுத்தப்படலாம்.
ஓபன்சிவியைப் பயன்படுத்தி பட செயலாக்கத்தைக் கற்றுக்கொள்வதற்கு முன், படங்கள் என்ன, மனிதர்களும் இயந்திரங்களும் அந்த படங்களை எவ்வாறு உணர்கின்றன என்பதை அறிந்து கொள்வது அவசியம்.
படங்கள் என்றால் என்ன?
படங்கள் என்பது புலப்படும் ஒளி நிறமாலையின் இரு பரிமாண பிரதிநிதித்துவம் ஆகும். புலப்படும் ஒளி நிறமாலை என்பது அகச்சிவப்பு மற்றும் புற ஊதா நிறமாலைக்கு இடையில் இருக்கும் மின்காந்த நிறமாலையின் ஒரு பகுதியாகும்.

படங்கள் எவ்வாறு உருவாகின்றன: - ஒரு ஒளி ஒரு பொருளை ஒரு படம், சென்சார் அல்லது விழித்திரையில் பிரதிபலிக்கும் போது.

நம் கண்கள் இப்படித்தான் செயல்படுகின்றன, ஒரு சிறிய திறப்பை விட்டு வெளியேறக்கூடிய ஒரு சிறிய தடையைத் தடுக்க ஒரு தடையைப் பயன்படுத்தி ஒளி கடந்து செல்ல முடியும், இது துளை என அழைக்கப்படுகிறது, மேலும் இது அதிக கவனம் செலுத்தும் படத்தை உருவாக்குகிறது மற்றும் முள் துளை கேமராவுக்கு வேலை செய்யும் மாதிரியாகும், ஆனால் ஒரு முள் துளை கேமராவில் ஒரு சிக்கல் உள்ளது, அதே அளவு ஒளி துளைக்குள் நுழைகிறது, இது உருவான படத்துக்கோ அல்லது உருவத்துக்கோ பொருத்தமாக இருக்க முடியாது, மேலும் நாம் கவனம் செலுத்தும் படத்தைப் பெற முடியாது, இதனால் படத்தை நாம் கவனம் செலுத்துகிறோம் திரைப்படத்தை முன்னும் பின்னுமாக நகர்த்த வேண்டும், ஆனால் இது பல சூழ்நிலைகளில் சிக்கலானது.

அல்லது லென்ஸ்கள் பயன்படுத்துவதன் மூலம் இந்த சிக்கலை சரிசெய்யலாம், இது துளை அளவைக் கட்டுப்படுத்த அனுமதிக்கிறது, மேலும் புகைப்படத்தில் இது எஃப் ஸ்டாப் என்று அழைக்கப்படுகிறது, பொதுவாக எஃப் ஸ்டாப்பின் மதிப்பைக் குறைப்பது புகைப்படத்தில் சிறந்தது.
துளை அளவு புகைப்படத்தில் பொக்கே என அழைக்கப்படும் நல்ல ஆழமான புலத்தில் இறங்குவோம், இது படத்தில் கவனம் செலுத்தும்போது மங்கலான பின்னணியைக் கொண்டிருக்க அனுமதிக்கிறது.
கணினி படங்களை எவ்வாறு சேமிக்கிறது
.png,.jpgG போன்ற பல்வேறு பட வடிவங்களைப் பற்றி நீங்கள் கேள்விப்பட்டிருக்கலாம், இவை அனைத்தும் எங்கள் அனலாக் உலகின் டிஜிட்டல் பிரதிநிதித்துவம், கணினிகள் படத்தை சேமிப்பிற்கான டிஜிட்டல் குறியீடாக மொழிபெயர்ப்பதன் மூலம் அதைச் செய்கின்றன, பின்னர் கோப்பை ஒரு படமாக மீண்டும் விளக்குகின்றன காட்சி. ஆனால் அடிப்படைகளில் அவர்கள் படங்களை சேமிக்க ஒரு பொதுவான தளத்தைப் பயன்படுத்துகிறார்கள், மேலும் ஓபன் சி.வி.
OpenCV அதன் படங்களுக்கு முன்னிருப்பாக RGB (சிவப்பு, பச்சை மற்றும் நீலம்) வண்ண இடத்தைப் பயன்படுத்துகிறது, அங்கு ஒவ்வொரு பிக்சல் ஒருங்கிணைப்பும் (x, y) 8-பிட் வடிவத்தில் (0-255, 2 8) தீவிரங்களுக்கு 3 மதிப்புகளைக் கொண்டுள்ளது.
ஒவ்வொரு வண்ணத்தின் வெவ்வேறு தீவிரங்களை கலப்பது எங்களுக்கு முழு நிறமாலையை அளிக்கிறது, அதனால்தான் ஓவியம் அல்லது கலையில் இந்த மூன்று வண்ணங்களும் முதன்மை வண்ணங்களாகவும் மற்ற அனைத்தையும் இரண்டாம் நிலைகளாகவும் கருதப்படுகின்றன, ஏனென்றால் இரண்டாம் நிலை வண்ணங்களில் பெரும்பாலானவை முதன்மை வண்ணங்களால் உருவாக்கப்படலாம். மஞ்சள் நிறத்தைப் போலவே, நமக்கு பின்வரும் மதிப்புகள் உள்ளன: சிவப்பு - 255; பச்சை - 255; நீலம் - 0.
இப்போது படங்கள் பல பரிமாண வரிசைகளில் சேமிக்கப்பட்டுள்ளன. நிரலாக்கத்தில், வரிசை என்பது பொருட்களின் தொகுப்பின் தொடர். இங்கே நாம் 1 டி, 2 டி மற்றும் 3 டி வரிசைகளைக் கையாளுகிறோம், அங்கு 'டி' என்பது பரிமாணத்தைக் குறிக்கிறது.

வண்ணப் படங்கள் முப்பரிமாண வரிசைகளில் சேமிக்கப்படுகின்றன, அங்கு மூன்றாவது பரிமாணங்கள் RGB வண்ணங்களைக் குறிக்கின்றன (அவை பின்னர் பார்ப்போம்), ஒன்றாக அவை ஒரு படத்திற்கான பிக்சல்களின் வெவ்வேறு தீவிரங்களை உருவாக்குகின்றன, அதே நேரத்தில் கருப்பு மற்றும் வெள்ளை படங்கள் இரு பரிமாண வரிசைகளில் சேமிக்கப்படுகின்றன மேலும் இரண்டு வகையான கருப்பு மற்றும் வெள்ளை படங்கள் கிரேஸ்கேல் மற்றும் பைனரி படங்கள் உள்ளன.
கிரேஸ்கேல் படங்கள் இரு பரிமாண வரிசையின் சாம்பல் நிற நிழல்களிலிருந்து உருவாகின்றன, அதே சமயம் பைனரி படங்கள் கருப்பு அல்லது வெள்ளை நிற பிக்சல்கள் கொண்டவை.
ஒரு இயந்திரம் படங்களை அடையாளம் காண்பது ஏன் கடினம்
கணினி பார்வை என்பது ஒரு சவாலான பணியாகும், ஒரு இயந்திரத்திற்கு பார்வை, அங்கீகாரம் மற்றும் அடையாளம் காண்பது எவ்வளவு கடினம் என்பதை நீங்களே கற்பனை செய்து கொள்ளலாம். கணினி பார்வை மிகவும் கடினமாக்கும் பின்வரும் காரணிகள் உள்ளன.
- கேமரா சென்சார் மற்றும் லென்ஸ் வரம்புகள்
- புள்ளி மாறுபாடுகளைக் காண்க
- விளக்குகளை மாற்றுதல்
- அளவிடுதல்
- நிகழ்வுகள்
- பொருள் வர்க்க வேறுபாடுகள்
- தெளிவற்ற படங்கள் / ஒளியியல் மாயைகள்
OpenCV இன் பயன்பாடு மற்றும் பயன்பாடுகள்
சிரமம் இருந்தபோதிலும், கணினி பார்வை பல வெற்றிக் கதைகளைக் கொண்டுள்ளது
- ரோபோ வழிசெலுத்தல் - சுய ஓட்டுநர் கார்கள்
- முகம் கண்டறிதல் மற்றும் அங்கீகாரம்
- தேடுபொறி படத் தேடல்
- உரிமம் தட்டு வாசிப்பு
- கையெழுத்து அங்கீகாரம்
- ஸ்னாப்சாட் & முக வடிப்பான்கள்
- பொருள் அங்கீகாரம்
- விளையாட்டுகளில் பந்து மற்றும் வீரர் கண்காணிப்பு
- மற்றும் இன்னும் பல!
பைதான் மற்றும் அனகோண்டாவுடன் ஓபன்சிவியை நிறுவுகிறது
ஓபன்சிவி சி ++ இல் எழுதப்பட்டுள்ளது, ஆனால் அதை சி ++ உடன் செயல்படுத்துவது மிகவும் கடினம், எனவே இதை பைதான் என உயர் மட்ட மொழியுடன் செயல்படுத்த நாங்கள் தேர்வு செய்கிறோம், மேலும் பைதான் எளிதான மொழிகளில் ஒன்றாக இருப்பதால் பைதான் உடன் ஓபன்சிவியை செயல்படுத்துவதில் கூடுதல் நன்மைகள் உள்ளன. தொடக்கநிலையாளர்களுக்கும் இது தரவு அறிவியல் மற்றும் இயந்திர கற்றல் பயன்பாடுகளுக்கு மிகவும் சக்தி வாய்ந்தது, மேலும் இது படங்களை எண்ணற்ற வரிசைகளில் சேமிக்கிறது, இது சில மிக சக்திவாய்ந்த செயல்பாடுகளை மிக எளிதாக செய்ய அனுமதிக்கிறது.
உயர்நிலைப் பள்ளி நிலை கணிதம், ஒரு வெப்கேம், பைதான் 2.7 அல்லது 3.6 (அனகோண்டா தொகுப்பு விரும்பப்படுகிறது) உடன் அடிப்படை நிரலாக்க பயனுள்ளதாக இருக்கும்.
படி 1. அனகோண்டா பைதான் தொகுப்பை பதிவிறக்கி நிறுவவும்
இதற்குச் செல்லுங்கள்: https://www.anaconda.com/download மற்றும் உங்கள் இயந்திர வானிலைக்கு ஏற்ப அதன் சாளரங்கள், லினக்ஸ் அல்லது மேக் ஆகியவற்றைத் தேர்வுசெய்து 64 பிட் அமைப்புகள் அல்லது 32 பிட் அமைப்புகளுக்கு பைதான் 2.7 அல்லது பைதான் 3.7 பதிப்பைத் தேர்வு செய்யலாம், ஆனால் இப்போது ஒரு நாள் பெரும்பாலான கணினி 64 பிட் ஆகும்.
பைத்தானின் அனகோண்டா விநியோகம் ஸ்பைடர் ஸ்டுடியோ, ஜூபிட்டர் நோட்புக்குகள் மற்றும் அனகோண்டா ப்ராம்ட் ஆகியவற்றுடன் வருகிறது, இது பைத்தானை சூப்பர் நட்பாக பயன்படுத்த வைக்கிறது. எடுத்துக்காட்டுகளைச் செய்வதற்கு நாங்கள் ஸ்பைடர் ஸ்டுடியோவைப் பயன்படுத்துவோம்.
பைதான் 2.7 அல்லது 3.7 க்கு இடையிலான தேர்வு முற்றிலும் நடுநிலையானது, ஆனால் உதாரணங்களுக்கு நாம் பைதான் 3.7 ஐப் பயன்படுத்துவோம், ஏனெனில் இது பைத்தானின் எதிர்காலம் மற்றும் பைத்தான் 2.7 படிவம் 2020 ஐ எடுத்துக் கொள்ளும், மேலும் பெரும்பாலான நூலகங்கள் பைதான் 3.7 இல் உருவாக்கப்படுகின்றன மலைப்பாம்பின் எதிர்கால அம்சம். (2/5 = 2.5) போன்ற அடிப்படை கணித செயல்பாடுகளிலும் இது எதிர்பார்க்கப்படும் முடிவுகளைத் தருகிறது, அதே நேரத்தில் பைதான் 2.7 அதை 2 ஆக மதிப்பிடும். மேலும் அச்சு பைதான் 3.7 (அச்சு (“ஹலோ”)) இல் ஒரு செயல்பாடாக கருதப்படுகிறது, எனவே இது புரோகிராமர்களுக்கு கைகொடுக்கும்.
படி 2. OpenCV உடன் மெய்நிகர் தளத்தை உருவாக்குதல்
நாம் போகிறோம் அனகோண்டா உடனடியாக பயன்படுத்தி ஸ்பைடர் ஒரு மெய்நிகர் மேடையில் உருவாக்குவதன் மூலம் OpenCV நிறுவ மற்றும் இங்கே பதிவேற்றம் YML கோப்பு.
ஒய்.எம்.எல் கோப்புகளுடன் நாங்கள் தேவைப்படும் அனைத்து தொகுப்புகள் மற்றும் நூலகங்களை நிறுவுவோம், ஆனால் நீங்கள் ஏதேனும் கூடுதல் தொகுப்புகளை நிறுவ விரும்பினால், அந்த தொகுப்பின் கட்டளையை இயக்குவதன் மூலம் அனகோண்டா வரியில் எளிதாக நிறுவலாம்.
உங்கள் விண்டோஸ் தேடல் ஐகானுக்குச் சென்று அனகோண்டா ப்ராம்ட் டெர்மினலைக் கண்டுபிடி, நீங்கள் இப்போது நிறுவிய உங்கள் அனகோண்டா கோப்புறையில் அதைக் காணலாம்.
நீங்கள் பதிவிறக்கிய YML கோப்பைக் கண்டுபிடிக்க வேண்டும், இங்கிருந்து உங்கள் முனையத்தின் கோப்பகத்தை உங்கள் YML கோப்பு பதிவிறக்கம் செய்யப்பட்ட இடத்திற்கு மாற்றலாம் அல்லது உங்கள் அனகோண்டா நிறுவப்பட்டிருக்கும் கோப்பகத்தில் உங்கள் YML கோப்பை நகலெடுக்கலாம். வழக்குகள் இது C: \ drive க்குள் இருக்கும், உங்கள் YML கோப்பை குறிப்பிட்ட இடத்திற்கு நகலெடுத்த பிறகு, உங்கள் கட்டளையில் பின்வரும் கட்டளையை இயக்கவும்
conda env create –f virt_platform_windows.yml
எனது கணினி சாளரங்களில் இயங்குவதால் YML கோப்பு மற்றும் கட்டளை சாளரங்களுக்கு ஒத்திருக்கிறது, இருப்பினும் உங்கள் கணினிக்கு ஏற்ப லினக்ஸ் அல்லது மேக் மூலம் சாளரங்களை மாற்றுவதன் மூலம் மாற்றியமைக்கலாம்.
குறிப்பு: - தொகுப்பு பிரித்தெடுத்தல் பிழையைக் கொடுத்தால், முதலில் பைட்டோர்ச் மற்றும் நம்பியை நிறுவவும், பின்னர் மேலே உள்ள கட்டளையை இயக்கவும்.
இப்போது அனகோண்டா நேவிகேட்டரைக் கண்டுபிடி, “___ இல் உள்ள பயன்பாடுகள்” இன் கீழ்தோன்றும் மெனு இருக்கும், அங்கிருந்து மெய்நிகர் சூழலைத் தேர்ந்தெடுத்து, அங்கிருந்து நீங்கள் ஸ்பைடர் ஸ்டுடியோவைத் தொடங்க வேண்டும்.
அது தான், நீங்கள் தொடங்கத் தயாராக உள்ளீர்கள்!

OpenCV இல் படங்களைத் திறந்து சேமிக்கிறது
ஓபன்சிவியில் பைத்தானைப் பயன்படுத்த சில அடிப்படை கட்டளைகளையும் சொற்களையும் இங்கே விளக்குகிறோம். OpenCV imread, imshow மற்றும் imwrite இல் மூன்று அடிப்படை செயல்பாடுகளைப் பற்றி அறிந்து கொள்வோம்.
பைத்தானில் உள்ள # கருத்துகள் # சின்னத்தால் வழங்கப்படுகின்றன
கட்டளை மூலம் பைதான் இல் opencv ஐ இறக்குமதி செய்க
cv2 ஐ இறக்குமதி செய்க
படத்திற்கான பாதையைக் குறிப்பிடும் 'imread' ஐப் பயன்படுத்தி படத்தை ஏற்றவும்
image = cv2.imread ('input.jpg')
இப்போது அந்த படம் ஏற்றப்பட்டு பைத்தானில் ஒரு மாறி என நாம் படமாக பெயரிட்டோம்
இப்போது எங்கள் பட மாறியைக் காண்பிக்க, நாங்கள் 'இம்ஷோ' ஐப் பயன்படுத்துகிறோம், இம்ஷோ செயல்பாட்டிற்கான முதல் அளவுரு பட சாளரத்தில் காட்டப்பட்டுள்ள தலைப்பு, மேலும் பெயரை ஒரு சரமாக குறிக்க அதை ('') உள்ளிட வேண்டும்.
cv2.imshow ('ஹலோ வேர்ல்ட்', படம்)
பட சாளரம் திறந்திருக்கும் போது தகவல்களை உள்ளீடு செய்ய வெயிட்கீ அனுமதிக்கிறது, அதை காலியாக விட்டுவிட்டு, தொடர்வதற்கு முன் எந்தவொரு அழுத்தத்தையும் அழுத்துவதற்கு காத்திருக்கும், எண்களை வைப்பதன் மூலம் (0 தவிர), நீங்கள் சாளரத்தை எவ்வளவு நேரம் திறந்து வைத்திருக்கிறீர்கள் என்பதை நாங்கள் குறிப்பிடலாம் (நேரம் இங்கே மில்லி விநாடிகளில்).
cv2.waitKey ()
'destAllWindows' திறந்த அனைத்து சாளரங்களையும் மூடுகிறது, இதை வைக்கத் தவறியது உங்கள் நிரலை செயலிழக்கச் செய்யும்.
cv2.destroyAllWindows ()

, இதற்காக நாம் நம்பியைப் பயன்படுத்துவோம், பெரிய பல பரிமாண வரிசைகள் மற்றும் மெட்ரிக்குகளுக்கு ஆதரவைச் சேர்க்க பைதான் நிரலாக்கத்திற்கான ஒரு நூலகம் நம்பி ஆகும்.
இறக்குமதி cv2 # எண்ணற்ற இறக்குமதி எண்ணை np image = cv2.imread ('input.jpg') cv2.imshow ('hello_world', image) என இறக்குமதி செய்க # ஒரு வரிசை பரிமாணங்களைப் பார்க்கும்போது # வடிவ செயல்பாடு மிகவும் பயனுள்ளதாக இருக்கும் , அது ஒரு பட அச்சு (image.shape) cv2.waitKey () cv2.destroyAllWindows ()
கன்சோல் வெளியீடு - (183, 275, 3), படத்தின் இரண்டு பரிமாணங்கள் 183 பிக்சல்கள் உயரமும் 275 பிக்சல்கள் அகலமும் 3 என்பதும் இந்த படத்தை உருவாக்கும் மற்ற மூன்று கூறுகள் (ஆர், ஜி, பி) உள்ளன (இது காட்டுகிறது வண்ண படங்கள் முப்பரிமாண வரிசைகளில் சேமிக்கப்படுகின்றன).
அச்சு ('படத்தின் உயரம்:', (image.shape, 'பிக்சல்கள்')) அச்சு ('படத்தின் அகலம்:', (image.shape, 'பிக்சல்கள்'))
கன்சோல் வெளியீடு - படத்தின் உயரம்: (183, 'பிக்சல்கள்')
படத்தின் அகலம்: (275, 'பிக்சல்கள்')
திருத்தப்பட்ட படத்தை OpenCV இல் சேமிக்கிறது
கோப்புப் பெயரையும் சேமிக்க வேண்டிய படத்தையும் குறிப்பிடுவதற்கு 'imwrite' ஐப் பயன்படுத்துகிறோம்.
cv2.imwrite ('output.jpg', படம்) cv2.imwrite ('output.png', படம்)
முதல் வாதம் என்பது நாம் சேமிக்க விரும்பும் கோப்பின் பெயர், read ஒரு சரம் எனக் குறிக்க நாம் பயன்படுத்தும் கோப்பைப் படிக்க அல்லது சேமிக்க ('') இரண்டாவது வாதம் கோப்பு பெயர்.
படத்தை வெவ்வேறு வடிவங்களில் சேமிக்க OpenCV உங்களை அனுமதிக்கிறது.
ஓபன்சிவியில் சாம்பல் அளவிடுதல் படம்
கிரேஸ்கேலிங் என்பது ஒரு படத்தை முழு நிறத்திலிருந்து சாம்பல் நிறமாக (கருப்பு மற்றும் வெள்ளை) மாற்றும் செயல்முறையாகும்
Opencv இல், பல செயல்பாடுகள் செயலாக்கத்திற்கு முன் படங்களை கிரேஸ்கேல் செய்கிறது. இது படத்தை எளிதாக்குவதால், கிட்டத்தட்ட சத்தம் குறைப்பதாக செயல்படுவதோடு, படத்தில் குறைவான தகவல்கள் இருப்பதால் செயலாக்க நேரத்தை அதிகரிக்கிறது (கிரேஸ்கேல் படங்கள் இரு பரிமாண வரிசைகளில் சேமிக்கப்படுவதால்).
இறக்குமதி cv2 # எங்கள் உள்ளீட்டு படத்தை ஏற்றவும் = cv2.imread ('input.jpg') cv2.imshow ('அசல்', படம்) cv2.waitKey () # நாங்கள் கிரேஸ்கேல் சாம்பல்_இமேஜ் = cv2.cvtColor (படம், cv2.COLOR_BGR2GRAY) cv2.imshow ('கிரேஸ்கேல்', கிரே_இமேஜ்) cv2.nightKey () cv2.destroyALLWindows ()

படத்தை கிரேஸ்கேலாக மாற்றுவதற்கான எளிய வழி, படத்தின் பெயரைத் தவிர்த்து imread செயல்பாட்டில் 0 என்ற வாதத்தைச் சேர்க்க வேண்டும்
இறக்குமதி cv2 grey_image = cv2.imread ('input.jpg', 0) cv2.imshow ('கிரேஸ்கேல்', கிரே_இமேஜ்) cv2.waitKey () cv2.destroyAllWindows ()
cv2 இறக்குமதி எண்ணை np image = cv2.imread ('input.jpg') அச்சு (image.shape) cv2.imshow ('அசல்', படம்) cv2.waitKey () gray_image = cv2.cvtColor (படம், cv2.COLOR_BGR2GRAY)) cv2.imshow ('கிரேஸ்கேல்', சாம்பல்_மேஜ்) அச்சு (சாம்பல்_மேஜ்.ஷேப்) cv2.nightKey () cv2.destroyALLWindows ()
கன்சோல் வெளியீடு: - (183, 275, 3) - வண்ண படத்திற்கு
(183, 275) - கிரேஸ்கேல் படத்திற்கு
எனவே வண்ணப் படங்கள் முப்பரிமாண வரிசைகளால் குறிக்கப்படுகின்றன என்பதையும், சாம்பல் அளவிலான படங்கள் இரு பரிமாண அணிகளால் குறிக்கப்படுவதையும் இது தெளிவாகக் காட்டுகிறது.
வண்ண இடைவெளிகள்
வண்ண இடைவெளிகள் படங்கள் சேமிக்கப்படும் வழி. RGB, HSV, CMYK ஆகியவை வெவ்வேறு வண்ண இடைவெளிகளாகும், இவை நிறத்தைக் குறிக்க எளிய வழிகள்.
RGB - சிவப்பு, பச்சை மற்றும் நீலம்.
HSV - சாயல், செறிவு மற்றும் மதிப்பு.
மற்றும் CMYK பொதுவாக இன்க்ஜெட் அச்சுப்பொறிகள் பயன்படுத்தப்படுகிறது.
RGB அல்லது BGR வண்ண இடம்
OpenCV இன் இயல்புநிலை வண்ண இடம் RGB ஆகும். RGB என்பது ஒரு சேர்க்கை வண்ண மாதிரியாகும், இது நீல, பச்சை மற்றும் சிவப்பு வண்ணங்களை வெவ்வேறு தீவிரங்கள் / பிரகாசங்களை இணைப்பதன் மூலம் வண்ணங்களை உருவாக்குகிறது. OpenCV இல் நாம் 8 பிட் வண்ண ஆழங்களைப் பயன்படுத்துகிறோம்.
- சிவப்பு (0-255)
- நீலம் (0-255)
- பச்சை (0-255)

இருப்பினும் ஓபன்சிவி உண்மையில் பிஜிஆர் வடிவத்தில் வண்ணத்தை சேமிக்கிறது.
வேடிக்கையான உண்மை: - கையொப்பமிடப்படாத 32-பிட் முழு எண்கள் நினைவகத்தில் எவ்வாறு சேமிக்கப்படுகின்றன என்பதன் காரணமாக கணினிகளில் பிஜிஆர் வரிசையைப் பயன்படுத்துகிறோம், இது இன்னும் RGB ஆக சேமிக்க முடிகிறது. ஒரு நிறத்தைக் குறிக்கும் முழு எண்: - 0X00BBGGRR 0XRRGGBB ஆக சேமிக்கப்படும்.
HSV வண்ண இடம்HSV (சாயல், நிறைவு & மதிப்பு / பிரகாசம்) என்பது ஒரு வண்ண இடைவெளி, இது மனிதர்கள் உணரும் வண்ணங்களைக் குறிக்க முயற்சிக்கிறது. இது RGB வண்ண புள்ளிகளின் உருளை பிரதிநிதித்துவத்தில் வண்ண தகவல்களை சேமிக்கிறது.
சாயல் - வண்ண மதிப்பு (0-179)
செறிவு - நிறத்தின் அதிர்வு (0-255)
மதிப்பு - பிரகாசம் அல்லது தீவிரம் (0-255)
வண்ண பிரிவில் HSV வண்ண இடைவெளி வடிவம் பயனுள்ளதாக இருக்கும். RGB இல், குறிப்பிட்ட வண்ணத்தை வடிகட்டுவது எளிதானது அல்ல, இருப்பினும் குறிப்பிட்ட வண்ணத்தை வடிகட்ட வண்ண வரம்புகளை அமைப்பதை HSV மிகவும் எளிதாக்குகிறது.

சாயல் HSV இல் நிறத்தைக் குறிக்கிறது, சாயல் மதிப்பு 0 - 180 முதல் 360 அல்ல, எனவே இது முழு வட்டத்தையும் முடிக்கவில்லை, எனவே இது தரத்தை விட வித்தியாசமாக மேப் செய்யப்படுகிறது.

வண்ண வரம்பு வடிப்பான்கள்
- சிவப்பு - (165-15)
- பச்சை - (45-75)
- நீலம் - (90-120)
படங்கள் RGB (சிவப்பு, பச்சை மற்றும் நீலம்) வண்ண இடத்தில் சேமிக்கப்படுவதை நாங்கள் அறிவோம், எனவே ஓபன்சிவி நமக்கு அதையே காட்டுகிறது, ஆனால் ஓபன்சிவியின் RGB வடிவமைப்பைப் பற்றி முதலில் நினைவில் கொள்ள வேண்டியது என்னவென்றால், இது உண்மையில் பி.ஜி.ஆர் மற்றும் அதைப் பார்த்து நாம் அறிந்து கொள்ளலாம் பட வடிவம்.
இறக்குமதி CV2 NP போன்ற இறக்குமதி numpy படத்தை = cv2.imread ('input.jpg') # பி, ஜி, முதல் 0,0 பிக்சலுக்கும் R இன் மதிப்பு பி, ஜி, ஆர் = படத்தை அச்சு (பி, ஜி, ஆர்) அச்சு (படத்தை.shape) # இதை நாம் கிரேஸ்கேல் படத்தில் பயன்படுத்தினால் சாம்பல்_இம் = cv2.cvtColor (படம், cv2.COLOR_BGR2GRAY) அச்சு (சாம்பல்_இம்.ஷேப்) # கிரே_இமேஜ் பிக்சல் மதிப்பு 10,50 பிக்சல் அச்சுக்கு (சாம்பல்_இம்ஜி)
கன்சோல் வெளியீடு: அச்சு (பி, ஜி, ஆர்) - 6 11 10
print (image.shape) - (183, 275, 3)
அச்சு (சாம்பல்_இம்.ஷேப்) - (183, 275)
அச்சு (சாம்பல்_இம்ஜி) - 69
இப்போது ஒரு சாம்பல் அளவிலான படத்தில் இரண்டு பரிமாணங்கள் மட்டுமே உள்ளன, ஏனென்றால் வண்ணப் படம் மூன்று பரிமாணங்களில் சேமிக்கப்பட்டுள்ளது என்பதை நினைவில் கொள்கிறோம், மூன்றாவது பரிமாணம் (ஆர், ஜி, பி), கிரேஸ்கேலில் இரண்டு பரிமாணங்கள் மட்டுமே உள்ளன, ஏனெனில் (ஆர், ஜி, பி) இல்லை மற்றும் ஒரு குறிப்பிட்ட பிக்சல் நிலைக்கு நாம் ஒரு மதிப்பை மட்டுமே பெறுகிறோம், அதே நேரத்தில் வண்ணப் படத்தில் மூன்று மதிப்புகள் கிடைத்தன.
மற்றொரு பயனுள்ள வண்ண இடம் எச்.எஸ்.வி.
cv2 image = cv2.imread ('input.jpg') hsv_image = cv2.cvtColor (image, cv2.COLOR_BGR2HSV) cv2.imshow ('HSV image', hsv_image) cv2.imshow ('Hue channel', hsv_image) இறக்குமதி செய்க. imshow ('செறிவு சேனல்', hsv_image) cv2.imshow ('மதிப்பு சேனல்', hsv_image) cv2.waitKey () cv2.destroyAllWindows ()




குறியீட்டை இயக்கிய பிறகு, நான்கு படங்களை தனித்தனி சேனல்களிலும், ஒன்று எச்.எஸ்.வி படமாகவும் இணைக்கப்பட்டுள்ளது.
சாயல் சேனல் படம் மிகவும் இருண்டது, ஏனெனில் அதன் மதிப்பு 0 முதல் 180 வரை மட்டுமே மாறுபடும்.
மேலும், இம்ஷோ செயல்பாடு உங்களுக்கு RGB அல்லது BGR படத்தைக் காட்ட முயற்சிக்கிறது என்பதை நினைவில் கொள்க, ஆனால் HSV மாற்றம் அதை ஒன்றுடன் ஒன்று சேர்க்கிறது .
மேலும், மதிப்பு சேனல் அதன் பிரகாசம் காரணமாக படத்தின் கிரேஸ்கேலுக்கு ஒத்ததாக இருக்கும்.
RGB படத்தின் தனிப்பட்ட கூறுகளை ஆராய்தல்
இறக்குமதி CV2 படத்தை = cv2.imread ('input.jpg') # opencv பிளவுண்டமையும் செயல்பாடு imageinti ஒவ்வொரு நிறவளவையெண் பிளக்கும் பி, ஜி, ஆர் = cv2.split (படம்) cv2.imshow ("ரெட்", ஆர்) cv2.imshow ("பச்சை", ஜி) cv2.imshow ("நீலம்", பி) # தனித்த வண்ணக் கூறுகளை ஒன்றிணைப்பதன் மூலம் அசல் படத்தை உருவாக்குகிறது = cv2.merge () cv2.imshow ("ஒன்றிணைக்கப்பட்டது", ஒன்றிணைக்கப்பட்டது) # நீல நிறத்தை ஒன்றிணைத்தல் = cv2.merge () cv2.imshow ("நீல நிற பெருக்கத்துடன் இணைக்கப்பட்டது", ஒன்றிணைக்கப்பட்டது) # தனிப்பட்ட வண்ணக் கூறுகளின் வடிவத்தைக் குறிக்கிறது. # வெளியீடு என்பது இரண்டு பரிமாணங்களாக இருக்கும், அதாவது உயரம் மற்றும் அகலம் இருக்கும், ஏனெனில் RGB கூறுகளின் மூன்றாவது உறுப்பு தனித்தனியாக அச்சு (பி. ஷேப்) அச்சு (ஆர்.வடிவம்) அச்சு (G.shape) cv2.waitKey (0) cv2.destroyAllWindows ()





கன்சோல் வெளியீடு: வடிவ செயல்பாட்டிலிருந்து # படத்தின் பரிமாணங்கள்
(183, 275)
(183, 275)
(183, 275)
படத்தை தனிப்பட்ட RGB கூறுகளாக மாற்றுகிறது
கீழேயுள்ள குறியீட்டில், HxW படத்தின் பரிமாணங்களுடன் பூஜ்ஜியங்களின் மேட்ரிக்ஸை உருவாக்கியுள்ளோம், பூஜ்ஜியம் பூஜ்ஜியங்களால் நிரப்பப்பட்ட ஒரு வரிசையைத் தருகிறது, ஆனால் அதே பரிமாணங்களுடன்.
ஒரு படத்தின் பரிமாணத்தைப் பார்க்கும்போது வடிவ செயல்பாடு மிகவும் பயனுள்ளதாக இருக்கும், மேலும் இங்கே அந்த வடிவ செயல்பாட்டை வெட்டுகிறோம். எனவே வடிவம் எல்லாவற்றையும் நியமிக்கப்பட்ட புள்ளிகள் வரை கைப்பற்றும், அதாவது இரண்டாவது நியமிக்கப்பட்ட புள்ளிகள் வரை, இது படத்தின் உயரம் மற்றும் அகலமாக இருக்கும், இது மூன்றாவது படத்தின் RGB கூறுகளை குறிக்கிறது, எங்களுக்கு இது இங்கே தேவையில்லை.
cv2 இறக்குமதி எண்ணை np image = cv2.imread ('input.jpg') B, G, R = cv2.split (image) zeros = np.zeros (image.shape, dtype = "uint8") cv2.imshow ("RED", cv2.merge ()) cv2.imshow ("Green", cv2.merge ()) cv2.imshow ("Blue", cv2.merge ()) cv2.waitKey (0) cv2.destroyAllWindows ()



படத்தின் ஹிஸ்டோகிராம் பிரதிநிதித்துவம்
படத்தின் ஹிஸ்டோகிராம் பிரதிநிதித்துவம் என்பது படங்களின் கூறுகளைக் காட்சிப்படுத்தும் முறையாகும்.
பின்வரும் குறியீடு அதன் ஒருங்கிணைந்த மற்றும் தனிப்பட்ட வண்ண கூறுகளின் வண்ண ஹிஸ்டோகிராம் மூலம் படத்தை பகுப்பாய்வு செய்ய உங்களை அனுமதிக்கிறது.
இறக்குமதி CV2 NP போன்ற இறக்குமதி numpy வரைபடம் சதிதிட்டங்கள் உருவாக்க இறக்குமதி matplotlib செய்ய #we தேவை PLT போன்ற matplotlib.pyplot இறக்குமதி படத்தை = cv2.imread ('input.jpg') (,, யாரும்,,) வரைபடம் = cv2.calcHist #we சதி ஒரு வரைபடம், சிக்கல் () flatens எங்கள் படத்தை வரிசை plt.hist (image.ravel (), 256,) plt.show () தனி வண்ண சானல்களைக் #viewing நிறம் = ('ஆ', 'கிராம்', 'ஆர்') #we தெரியும் நிறம் seperate மற்றும் வரைபடம் ஒவ்வொரு திட்டமிடுவர் : கணக்கிலெடுக்கலாம் உள்ள வண்ணம், நான் ஐந்து (நிறம்) histogram2 = cv2.calcHist (,, யாரும்,,) plt.plot (histogram2, நிறம் = வண்ணம்) plt.xlim () plt.show ()




நாம் தான் புரிந்து calcHist அதன் தனிப்பட்ட அளவுருக்கள் ஒவ்வொன்றும் செயல்பாடு
cv2.calcHist (படங்கள், சேனல்கள், முகமூடி, ஹிஸ்டைஸ் , வரம்புகள்)
படங்கள்: வகை uint 8 அல்லது மிதவை 32 இன் மூலப் படம். இது சதுர அடைப்புக்குறிக்குள் கொடுக்கப்பட வேண்டும், அதாவது “”, இது ஓபன்சிவிக்கான படம் ஒரு வரிசை வடிவத்தில் தரவு என்பதால் அதன் இரண்டாம் நிலை வரிசையையும் குறிக்கிறது.
சேனல்கள்: இது சதுர அடைப்புக்குறிகளிலும் கொடுக்கப்பட்டுள்ளது. இது ஹிஸ்டோகிராம் கணக்கிடும் சேனலின் குறியீடாகும், எடுத்துக்காட்டாக உள்ளீடு கிரேஸ்கேல் படமாக இருந்தால் அதன் மதிப்பு, வண்ண படங்களுக்கு நீங்கள் கடந்து செல்லலாம் அல்லது முறையே நீலம், பச்சை மற்றும் சிவப்பு சேனலின் ஹிஸ்டோகிராம் கணக்கிடலாம்.
முகமூடி: முகமூடி படம். முழு படத்தின் வரைபடத்தைக் கண்டுபிடிக்க, அது “எதுவுமில்லை” என்று கொடுக்கப்பட்டுள்ளது. ஆனால் படத்தின் குறிப்பிட்ட பகுதியின் வரைபடத்தைக் கண்டுபிடிக்க விரும்பினால், அதற்காக ஒரு முகமூடி படத்தை உருவாக்கி அதை முகமூடியாகக் கொடுக்க வேண்டும்.
சுருக்கவும்: இது எங்கள் BIN எண்ணிக்கையைக் குறிக்கிறது. நாம் கடந்து செல்லும் முழு அளவிற்கு சதுர அடைப்புக்குறிக்குள் கொடுக்கப்பட வேண்டும்.
வரம்புகள்: இது எங்கள் வரம்பு, பொதுவாக
OpenCV ஐப் பயன்படுத்தி படங்கள் மற்றும் வடிவங்களை வரைதல்
ஓபன்சிவியில் கோடுகள், செவ்வகம், பலகோணம், வட்டம் போன்றவற்றை வரைய சில எடுத்துக்காட்டுகள் கீழே உள்ளன.
cv2 இறக்குமதி எண்ணை np # ஒரு கருப்பு சதுர படத்தை உருவாக்குதல் = np.zeros ((512,512,3), np.uint8) # இதை நாங்கள் கருப்பு மற்றும் வெள்ளை நிறத்திலும் உருவாக்கலாம், இருப்பினும் எந்த மாற்றங்களும் இருக்காது image_bw = np.zeros ((512,512), np.uint8) cv2.imshow ("கருப்பு செவ்வகம் (நிறம்)", படம்) cv2.imshow ("கருப்பு செவ்வகம் (B&W)", image_bw)


வரி
கருப்பு சதுர மீது ஒரு வரி #create # cv2.line (பட, ஆய தொடங்கி ஆய முடிவுக்கு, நிறம், தடிமன்) தடிமன் 5 பிக்சல்கள் ஒரு குறுக்குக்கோடு #drawing படத்தை = np.zeros ((512,512,3), np.uint8) CV2.லைன் (படம், (0,0), (511,511), (255,127,0), 5) cv2.imshow ("நீலக்கோடு", படம்)

செவ்வகம்
ஒரு கருப்பு சதுர மீது ஒரு செவ்வகம் #create # cv2.rectangle (பட, ஆய தொடங்கி ஆய, நிறம் முடிவுக்கு தடிமன்) தடிமன் 5 பிக்சல்கள் ஒரு செவ்வகம் #drawing படத்தை = np.zeros ((512,512,3), np.uint8) CV2. செவ்வகம் (படம், (30,50), (100,150), (255,127,0), 5) cv2.imshow ("செவ்வகம்", படம்)

# ஒரு கருப்பு சதுரத்தின் மீது ஒரு வட்டத்தை உருவாக்குதல் # cv2.circle (படம், மையம், ஆரம், நிறம், நிரப்பு) படம் = np.zeros ((512,512,3), np.uint8) cv2.circle (படம், (100,100), (50), (255,127,0), - 1) cv2.imshow ("வட்டம்", படம்)

# ஒரு பலகோண படத்தை உருவாக்குதல் = np.zeros ((512,512,3), np.uint8) #lets நான்கு புள்ளிகளை வரையறுக்கின்றன pts = np.array (,,,], np.int32) # லெட்டுகள் இப்போது எங்கள் புள்ளிகளை வடிவத்தில் மாற்றியமைக்கின்றன பாலிலைன்கள் புள்ளிகள் = pts.reshape ((- 1,1,2)) cv2.polylines (படம்,, ட்ரு, (0,255,255), 3) cv2.imshow ("பலகோணம்", படத்தை)

opencv # cv2.putText (படம், 'காண்பிக்க உரை', பூட்டம் இடது தொடக்க புள்ளி, எழுத்துரு, எழுத்துரு அளவு, நிறம், தடிமன்) படம் = np.zeros ((512,512,3), np.uint8) cv2 ஐப் பயன்படுத்தி # உரை அமைத்தல். putText (படம், "ஹலோ வேர்ல்ட்", (75,290), cv2.FONT_HERSHEY_COMPLEX, 2, (100,170,0), 3) cv2.imshow ("ஹலோ வேர்ல்ட்", படம்) cv2.waitKey (0) cv2.destroyAllWindows ()

கம்ப்யூட்டர் விஷன் மற்றும் ஓபன்சிவி ஆகியவை மறைக்க மிகவும் பரந்த தலைப்புகள், ஆனால் இந்த வழிகாட்டி ஓபன்சிவி மற்றும் பட செயலாக்கத்தைக் கற்றுக்கொள்ள நல்ல தொடக்க புள்ளியாக இருக்கும்.
