Ерозија и проширење слика коришћењем ОпенЦВ-а у Питхон-у
Морфолошке операције модификују слике на основу структуре и распореда пиксела. Они примењују кернел на улазну слику за промену њених карактеристика у зависности од распореда суседних пиксела. Морфолошке операције као што су ерозија и дилатација су технике обраде слика, посебно за бинарне слике или слике у сивим тоновима. Они помажу у анализи облика који чисте буку и пречишћавају границе објеката.
Ерозија
Ерозија у обради слике је морфолошка операција која смањује и стањује границе објеката на слици уклањањем пиксела на ивицама објекта, чиме се објекти ефикасно смањују и уклањају мали бели шум.
Сврха
- Смањује или еродира границе објеката у првом плану (обично белих пиксела).
- Уклања фини бели шум и одваја предмете који се додирују.
Како то ради
- Кернел (обично 3×3 5×5 или 7×7 матрица јединица) клизи преко слике.
- Пиксел остаје бео (1) само ако су сви пиксели испод кернела бели; иначе постаје црна (0).
- Овај процес смањује величину објекта и еродира ивице.
Дилатација
Дилатација је морфолошка операција која проширује границе објеката на слици додавањем пиксела на ивице објекта чинећи објекте већим и попуњавајући мале празнине или рупе.
сврха:
- Проширује границе објеката у првом плану.
- Наглашава или повећава карактеристике и попуњава мале празнине.
Како то ради:
- Језгро је на сличан начин савијено преко слике.
- Пиксел је постављен на бело (1) ако бар један одговарајућих пиксела испод језгра је бело.
- Као резултат тога, беле области расту спајајући мале рупе или спајајући поломљене делове заједно.
Спровођење ерозије и дилатације
Хајде да имплементирамо ерозију и проширење са ОпенЦВ-ом у Питхон-у
Корак 1: Увезите библиотеке
Увешћемо потребне библиотеке
- цв2 : ОпенЦВ библиотека за обраду слика.
- нумпи : За нумеричке операције и за креирање језгара.
- матплотлиб.пиплот : За приказ слика у бележницама.
Корак 2: Учитајте улазну слику и дефинишите елементе структуре (језгро)
Језгро дефинише комшилук за операцију. Уобичајени избори су правоугаоници или дискови.
PythonКоришћена слика се може преузети са овде .
img = cv2 . imread ( 'input.webp' 0 ) plt . imshow ( img cmap = 'gray' ) plt . title ( 'Original Image' ) plt . axis ( 'off' ) plt . show () kernel = np . ones (( 5 5 ) np . uint8 )
Излаз:
Оригинал Корак 3: Нанесите ерозију
Ерозија функционише клизањем кернела преко слике. Пиксел остаје бео (255) само ако су сви пиксели испод кернела бели у супротном постаје црн (0). Ово смањује границе објекта и уклања мали бели шум.
Python img_erosion = cv2 . erode ( img kernel iterations = 1 ) plt . imshow ( img_erosion cmap = 'gray' ) plt . title ( 'After Erosion' ) plt . axis ( 'off' ) plt . show ()
Излаз:
После ерозије Корак 4: Нанесите дилатацију
Дилатација клизи кернел преко слике и пиксел постаје бео ако је бар један пиксел испод језгра бео. Ово згушњава беле регионе или предмете и испуњава мале рупе.
Python img_dilation = cv2 . dilate ( img kernel iterations = 1 ) plt . imshow ( img_dilation cmap = 'gray' ) plt . title ( 'After Dilation' ) plt . axis ( 'off' ) plt . show ()
Излаз:
После проширења Апликације
Ерозија
- Уклањање изолованог белог шума са слике.
- Раздвајање објеката који се спајају или додирују.
- Проналажење граница објекта смањењем величине објекта.
Дилатација
- Попуњавање малих рупа или празнина у објектима.
- Спајање поломљених или неповезаних делова истог објекта.
- Користи се након ерозије (као део операције 'отварања') за враћање величине објекта уз истовремено уклањање буке.
Ерозија и дилатација су основне морфолошке операције у обради слике које нам омогућавају да прецизирамо чисте и манипулишемо облицима унутар слика. Коришћењем једноставних структурних елемената, ове технике помажу у уклањању шума одвојеним или повезивању објеката и побољшавају карактеристике слике што их чини основним алатима за ефикасну претходну обраду и анализу у задацима компјутерског вида са ОпенЦВ и Питхон-ом.
Креирај квиз