Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Израда прелепе скице захтева много времена и труда. На срећу, програмирање је еволуирало тако да сада можете лако да трансформишете слике и креирате прелепе дизајне. Једна импресивна техника коју можете да примените је да претворите слику у дигиталну скицу.

Иако механичка скица неће изгледати баш као ваш цртеж оловком, резултат је и даље вредан експериментисања. Научите како да програмирате такву апликацију користећи ОпенЦВ модул на супер пријатељском језику Питхон.

ОпенЦВ модул

ОпенЦВ је Интел развијена и одржавана библиотека отвореног кода метода компјутерског вида који се користе за обраду слика и компјутерски вид. Корисницима олакшава креирање оптимизованих апликација, интеракцију са сликама и видео записима у реалном времену и одабир идеалног алгоритма за њихове потребе.

Неке од популарних апликација од ОпенЦВ укључује детекцију лица, аутоматско праћење лица у кинематографији, филтери друштвених медија,

instagram viewer
препознавање регистарских таблица аутомобила, и ЦЦТВ надзор. Да бисте користили ОпенЦВ модул у Питхон-у, отворите свој терминал и откуцајте следећу команду:

пип инсталл опенцв-питхон

Како претворити било коју слику у скицу користећи Питхон

Да бисте своју омиљену слику претворили у дигиталну скицу, почните тако што ћете је ставити у исту фасциклу као нови Питхон програм, ради лакшег референцирања. Затим почните да правите свој програм користећи следеће кораке.

Овај пример кода је доступан у а ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.

Први корак је да увезете ОпенЦВ модул у ваше окружење. Када ОпенЦВ постане доступан, можете користити његову функционалност за обављање различитих задатака. Проследите путању ваше сликовне датотеке у имреад() функција за учитавање. Чувајте своју слику у променљивој – тзв имаге1 овде—за будућу референцу.

Сачувајте наслов прозора у променљивој под називом име_прозора. Ово ће бити корисно када одаберете да прикажете слику помоћу имсхов() функција. Ова функција захтева два параметра: наслов и слику коју желите да прикажете.

увоз цв2

имаге1 = цв2.имреад('имаге.јпг')
име_прозора = 'Права слика'
цв2.имсхов (име_прозора, слика1)

Када добијете жељену слику, потребно је да извршите пет операција да бисте је трансформисали у скицу. Прво, претворите слику у боји у нијансе сиве. То можете учинити са цвтЦолор() функција. Ова функција преузима слику чије боје желите да промените и код за конверзију као нпр ЦОЛОР_БГР2ГРЕИ.

сива_имг = цв2.цвтЦолор (слика1, цв2.ЦОЛОР_БГР2ГРЕИ)

Када добијете слику у сивим тоновима, окрените њене боје. У овом тренутку морате разумети како рачунар формира слику. Слика се састоји од много ситних пиксела различитог интензитета. На слици у боји, сваки пиксел садржи црвене, зелене и плаве компоненте, свака са интензитетом који варира од 0 до 255.

На слици у сивим тоновима постоје само нијансе сиве, тако да интензитет пиксела варира између 0 и 1. Да бисте инвертовали интензитет пиксела ове слике, проследите слику сивих тонова на битвисе_нот() функција.

Као што име сугерише, ова функција инвертује вредност сваког пиксела у његов комплементарни еквивалент. Сви пиксели који су већи од 0 су постављени на 0, а сви пиксели који су једнаки 0 су постављени на 255.

инверт = цв2.битвисе_нот (сива_имг)

Након инвертовања интензитета пиксела, можете изгладити слику уз помоћ Гауссовог замућења. Гаусов процес замућења користи Гаусов филтер. Гаусов филтер је нископропусни филтер који пропушта само ниске фреквенције, уклањајући високофреквентну компоненту сигнала или слике.

ОпенЦВ'с ГауссианБлур() функција прихвата четири параметра. То су матрични објекат који делује као изворна слика, ксизе (величина језгра) и сигмаКс (стандардна девијација Гаусовог кернела).

Претпоставимо да имате физичку фотографију у руци. Ако желите да га замутите, преко њега можете нанети комаде воска или пергамент папира. Можете замислити кернел као овај провидни комад папира. Дигитално, ово се дешава мало другачије. Да бисте замаглили, изоштрили и применили друге ефекте на дигиталну слику, множите матрицу са интензитетом пиксела слике.

Ксиза је увек позитиван непаран број. Како повећавате величину кернела, замућење се повећава. Да бисте разумели сигмаКс, претпоставите да наносите восак на папир. Како наносите восак, папир постаје равномерно провидан. Слично томе, морате држати вредности језгра близу одређене тачке (просека). Вредност сигмаКс дефинише разлику између просечних и других вредности пиксела на слици.

Проследите обрнуту слику, величину кернела као (21, 21) и стандардну девијацију 0 у функцију Гаусовог замућења:

замућење = цв2.ГауссианБлур (обрни, (21, 21), 0)

Поново проследите замућену слику функцији битвисе_нот() да бисте је инвертовали:

инвертедблур = цв2.битвисе_нот (замућење)

На крају, користите подела() функцију и да изврши поделу по елементу низа слика у нијансама сиве и низа обрнутих замућених слика са скалом од 256.

скица = цв2.дивиде (сива_имг, обрнуто замућење, скала=256.0)

У суштини, функција обавља следећу операцију:

дефподела(сива_имг, б, обрнуто замућење=256.0):
повратак (греи_имг * скала) / обрнуто замућење

Сачувајте резултат у променљивој под називом скица. Да бисте сачували коначну слику, проследите име за излазну датотеку и слику скице у имврите() функција. Да бисте то потврдили, можете користити функцију имреад() да учитате сачувану слику скице, дате наслов прозора и прикажете га помоћу функције имсхов().

Користити чекај() функцију преношењем 0 за приказ оригиналног прозора слике и генерисаног прозора скице док не притиснете било који тастер.

цв2.имврите("скица.јпег", скица)
имаге = цв2.имреад("скица.јпег")
име_прозора ='Скица слике'
цв2.имсхов (име_прозора, слика)
цв2.ваитКеи(0)

Спојите сав код и ваш програм је спреман.

Пример резултата претварања слике у скицу помоћу овог Питхон програма

Можете одабрати прелепу пејзажну слику и покренути је кроз програм да бисте генерисали ову задивљујућу дигиталну скицу.

На портретној слици, програм генерише следећу дигиталну скицу.

Можете експериментисати са параметрима функције према вашим жељама да бисте генерисали жељену дигиталну скицу.

Обрада слике и компјутерски вид

Обрада слике и компјутерски вид су две блиско повезане области технологије. Оба укључују промену дигиталних слика да би се постигли жељени резултати. Обрада слике се фокусира на побољшање слике, док компјутерска визија тражи да пронађе обрасце и објекте унутар слике да би је разумела.

Сцикит-имаге је још једна Питхон библиотека која пружа широк спектар функција за обраду слика. Има неколико унапред компајлираних модула, филтера, слојева, трансформација и још много тога. Ако тражите модул који ћете користити за моделе дубоког учења као што су ЦНН и РНН, можда бисте желели да истражите Торцхвисион.