Чишћење слика је вредна техника, било да се ради о даљим анализама или једноставно да би ваше фотографије изгледале најбоље.
Побољшање слике је кључно средство за компјутерски вид и апликације за уређивање слика. Циљ му је да побољша квалитет слике.
Побољшањем квалитета слике, тачност и поузданост техника анализе и обраде слике могу се значајно побољшати. Ово је посебно важно у апликацијама за детекцију, препознавање, сегментацију и праћење објеката.
Побољшање слике може помоћи када фактори као што су услови слабог осветљења, шум сензора, замућење покрета или грешке у преносу угрозе квалитет слике.
Подешавање вашег окружења
Старт би подешавање Питхон окружења, а затим покрените следећу наредбу терминала да бисте инсталирали ОпенЦВ библиотеку. Користићете ОпенЦВ да учитате и обрадите почетну слику и да сачувате коначну побољшану слику.
пип инсталл опенцв-питхон
Користићете Матплотлиб за приказ две слике. Инсталирајте га помоћу ове команде:
пип инсталл матплотлиб
На крају, инсталирајте НумПи, што ћете
користити за нумеричке операције укључујући креирање табела за тражење за гама корекцију и дефинисање кернела за изоштравање слике:пип инсталл нумпи
Када инсталирате ове библиотеке у своје окружење, спремни сте да почнете са кодирањем.
Комплетан изворни код за овај демо доступан је у а ГитХуб спремиште.
Увоз потребних библиотека
Увезите библиотеке које сте претходно инсталирали у свом окружењу:
увоз цв2
увоз матплотлиб.пиплот као плт
увоз нумпи као нп
Имајте на уму да би требало да увезете ОпенЦВ као цв2. Ово је стандардна пракса која има за циљ да обезбеди компатибилност кода и лакоћу разумевања за друге програмере.
Учитавање и приказивање оригиналне слике
Почните тако што ћете учитати оригиналну слику користећи цв2.имреад функција. Ово је улазна слика на којој ће ваш програм извести технике побољшања. Затим га прикажите користећи одговарајуће Матплотлиб функције:
имаге = цв2.имреад('екампле.јпг')
плт.имсхов (цв2.цвтЦолор (слика, цв2.ЦОЛОР_БГР2РГБ))
плт.титле('Оригинална слика')
плт.схов()
Приказивање оригиналне слике ће вам помоћи да касније упоредите резултате програма:
Горња слика ће бити улаз програма.
Смањење шума на слици
Деноисинг је техника која има за циљ да смањи шум – насумична изобличења – на слици. Ово резултира глаткијим излазом. ОпенЦВ пружа фастНлМеансДеноисингЦолоред функција за ову сврху. Користи алгоритам не-локалних средстава за уклањање шума уз очување детаља слике.
# Примени побољшања слике
# Деноисе слику
деноисед_имаге = цв2.фастНлМеансДеноисингЦолоред (слика, Ниједан, 10, 10, 7, 21)
Тхе фастНлМеансДеноисингЦолоред функција узима неколико параметара, укључујући слику, снагу филтера, величину прозора шаблона и величину прозора за претрагу. Можете експериментисати са различитим вредностима да бисте добили жељене резултате.
Растегните контраст да бисте побољшали видљивост детаља
Истезање контраста је такође познато као нормализација. Проширује вредности интензитета тако да обухвате одређени опсег. Ово заузврат побољшава видљивост детаља на слици.
Можете да примените истезање контраста на умањену слику помоћу ОпенЦВ-а нормализовати функција:
# Извршите истезање контраста
контраст_стретцхед_имаге = цв2.нормализе (деноисед_имаге, Ниједан, 255, 0, цв2.НОРМ_МИНМАКС, цв2.ЦВ_8УЦ1)
Како изоштрити слику
Изоштравање слике побољшава ивице и детаље слике, помажући да се побољша оштрина слике.
# Оштрење слике
кернел = нп.арраи([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], нп.флоат32)
изоштрена_слика = цв2.филтер2Д(контраст_истегнута_слика, -1, кернел=кернел)
Горњи код креира матрицу кернела која наглашава ивице и детаље на слици. Тхе цв2.филтер2Д функција примењује језгро на контрастно растегнуту слику, изоштравајући је као резултат.
Подесите осветљеност да бисте побољшали експозицију
Подешавање осветљености контролише укупну осветљеност слике. Помаже да слика буде визуелно привлачна и добро изложена.
# Подешавање осветљености
бригхтнесс_имаге = цв2.цонвертСцалеАбс (схарпенед_имаге, алпха=1, бета=5)
Тхе цв2.цонвертСцалеАбс функција подешава осветљеност слике. Тхе алфа параметар контролише контраст, док је бета параметар контролише осветљеност. Повећање бета вредност повећава осветљеност слике.
Примените гама корекцију да бисте осветлили слику
Слика може изгледати превише светла након технике подешавања светлине. Гама корекција прилагођава укупну осветљеност и контраст слике. Исправља слике које изгледају превише тамне или превише светле.
# Гама корекција
гама = 1.5
лоокуп_табле = нп.арраи([((и / 255.0) ** гама) * 255за и ин нп.аранге(0, 256)]).астипе("уинт8")
гамма_цоррецтед_имаге = цв2.ЛУТ(слика_светлине, табела за тражење)
Горњи исечак кода креира табелу за тражење која примењује трансформацију гама корекције на слику прилагођену осветљености. Тхе гама вредност контролише подешавање. Користите вредности веће од 1 да бисте слику учинили тамнијом, а вредности мање од 1 да бисте је учинили светлијом.
Чување и приказивање финалне побољшане слике
Када примените горе наведене технике побољшања, сачувајте коначну обрађену слику у датотеку.
# Сачувајте коначну слику
цв2.имврите('финал_имаге.јпг', гама_цоррецтед_имаге)
Затим прикажите излаз програма користећи Матплотлиб.
# Прикажите коначну побољшану слику
плт.имсхов (цв2.цвтЦолор (гамма_цоррецтед_имаге, цв2.ЦОЛОР_БГР2РГБ))
плт.титле(„Коначна побољшана слика“)
плт.схов()
Коначна побољшана слика је следећа:
Будућност побољшања слике
Будућност побољшања слике је у области вештачке интелигенције. Алгоритми машинског учења се обучавају да аутоматски изводе технике побољшања слике на сликама.
Ови програми третирају сваку слику независно, тако да примењују различите вредности техника за различите слике.