Људи могу разликовати око 10 милиона боја. Да бисте их уочили, потребно вам је нешто познато као палета боја. Палета боја садржи алате за приказ целог спектра боја видљивих људском оку. У стварном свету, користите их за креирање естетских дизајна на папиру, док их дигитално користите за додавање боје елементима екрана.
На крају, ваш рачунар кодира све различите нијансе које видите на екрану користећи одређени формат. Уз Питхон, можете развити РГБ-кодирану палету боја у само неколико линија кода захваљујући ОпенЦВ и НумПи модулу.
ОпенЦВ и НумПи модул
Можете анализирати слике и видео записе користећи ОпенЦВ. Бесплатан је, отвореног кода, једноставан за коришћење и препун корисних библиотека. Они пружају технике за класификацију, лоцирање и праћење објеката у две и три димензије. Да бисте инсталирали ОпенЦВ у своје окружење, отворите терминал и покрените:
пип инсталл опенцв-питхон
Модул НумПи је још једна популарна библиотека коју ћете видети да користе многи Питхон програми. НумПи—нумерички Питхон—је модул који можете користити за анализу података и научно рачунање. Обезбеђује н-димензионалне објекте низа као и математичке операције која помаже у манипулацији овим низовима.
Да бисте инсталирали НумПи у своје окружење, извршите:
пип инсталл нумпи
Генерално, ОпенЦВ ћете користити за обраду слика помоћу техника као што је детекција ивица. Затим можете користити НумПи да извршите анализу података на обрађеној слици. Користећи ову комбинацију можете креирајте и декодирајте КР код, класификују слике, врше оптичко препознавање карактера и праве системе за видео надзор који могу да детектују кретање и прате појединце у реалном времену.
Како направити палету боја користећи Питхон
Пратите ове кораке да бисте направили палету боја користећи ОпенЦВ и НумПи модул у Питхон-у.
Овде можете пронаћи извор палете боја користећи Питхон ГитХуб репозиторијум.
Започните увозом ОпенЦВ и НумПи модула. Дефинишите функцију под називом празна функција() који садржи изјаву о пролазу. Изјава о пролазу служи као чувар места за код који можете да напишете у будућности. Ово је посебно корисно са функцијама као што је цреатеТрацкбар, које ћете користити касније. Захтева важећу функцију повратног позива и за сада можете проследити емптиФунцтион као чувар места.
увоз цв2
увоз нумпи као нп
дефемптиФунцтион():
проћи
Генеришите тродимензионални низ величине 512 * 512 * 3 са типом података уинт8 користећи НумПи нула() функција. Сваки низ ће се састојати од 512 колона и 512 редова. уинт8 представља цео број без предзнака, тако да програм попуњава низ нулама.
слика = нп.нуле((512, 512, 3), нп.уинт8)
Подесите име прозора који ће програм приказати и проследите га на намедВиндов() функција за креирање прозора:
виндовНаме = „ОпенЦВ палета боја“
цв2.намедВиндов (виндовНаме)
Затим генеришете три траке за компоненте црвене, зелене и плаве боје. То можете учинити помоћу ОпенЦВ-а цреатеТрацкбар() функција. Прво, проследите ознаку као црвену, плаву или зелену. Друго, потребно је да проследите име прозора где желите да поставите ове траке на пример, виндовНаме.
Трећи параметар је минимална граница траке, у овом случају 0. Четврти параметар наводи максималну вредност, која је 255 за 24-битну вредност боје. Пети и последњи параметар је функција повратног позива за коју цреатеТрацкбар захтева важећу функцију. Због тога сте раније креирали емптиФунцтион, да делује као чувар места.
цв2.цреатеТрацкбар('Плави', име прозора, 0, 255,празнаФункција)
цв2.цреатеТрацкбар('Зелен', име прозора, 0, 255,празнаФункција)
цв2.цреатеТрацкбар('црвено', име прозора, 0, 255,празнаФункција)
Објавите бесконачну вхиле петљу и проследите име прозора заједно са сликом коју желите да прикажете ОпенЦВ-у имсхов() функција. Пошто слика садржи тродимензионални низ нула, програм у почетку приказује црни екран.
Проверите да ли је корисник притиснуо тастер за излаз тако што ћете тестирати вредност од чекај() против 27 (АСЦИИ код за Есцапе тастер). Функција ваиткеи() приказује прозор за дати број милисекунди или док не притиснете тастер. Пропуштањем једног као улаза, он приказује прозор на милисекунду, али се регенерише због бесконачне вхиле петље.
Да бисте добили тренутну позицију траке за праћење, проследите име траке са траком заједно са именом прозора гетТрацкбарПос(). Поновите овај корак за три одвојене компоненте боје, плаву, зелену и црвену. Користите оператор пресека да доделите три вредности низу слика. Ово ће заменити претходни скуп вредности, у почетку све нуле, са тренутним вредностима у складу са позицијама траке.
док (Истина):
цв2.имсхов (име прозора, слика)ако цв2.ваитКеи(1) == 27:
пауза
плава = цв2.гетТрацкбарПос('Плави', Име прозора)
зелено = цв2.гетТрацкбарПос('Зелен', Име прозора)
црвена = цв2.гетТрацкбарПос('црвено', Име прозора)
слика[:] = [плава, зелена, црвена]
штампа (плава, зелена, црвена)
Када корисник притисне тастер Есцапе, користите уништи све Виндовс() да затворите прозоре који је програм отворио:
цв2.дестроиАллВиндовс()
На крају, саставите све заједно и покрените да контролишете и видите своју палету боја.
Излаз Питхон програма за палету боја
Када покренете горњи програм, појављује се прозор који садржи три траке за боје плаве, зелене и црвене. Траке се крећу од опсега од 0 до 255. Када мењате вредности различитих трака, требало би да видите различите нијансе боја у одељку испод.
У овом првом примеру, можете видети поставку плаве траке као 0, зелене као 69 и црвене као 255. Добијена излазна боја је нијанса наранџасте/црвене. Поред тога, прозор терминала приказује вредности боја као 0 69 255.
Слично томе, када поставите плаву траку на 130, зелену на 0, а црвену на 75, добићете индиго боју.
Различите примене ОпенЦВ-а
ОпенЦВ нуди вредне функције за задатке као што су обрада слика, препознавање објеката, препознавање лица и праћење. Користећи ОпенЦВ можете произвести апликације рачунарског вида у реалном времену које би биле благодат у областима као што су роботика, индустријска аутоматизација, медицинско снимање и системи за надзор.
Будућност компјутерског вида је обећавајућа. Моћи ћете да користите компјутерски вид да помогнете слабовидима, остварите бољи раст у пољопривреди, побољшате безбедност на путевима користећи самовозеће аутомобиле, па чак и да се крећете по другим планетама, попут Марса.