Морфолошке операције модификују слике на основу структуре и распореда пиксела. Они примењују кернел на улазну слику за промену њених карактеристика у зависности од распореда суседних пиксела. Морфолошке операције као што су ерозија и дилатација су технике обраде слика, посебно за бинарне слике или слике у сивим тоновима. Они помажу у анализи облика који чисте буку и пречишћавају границе објеката.
Ерозија
Ерозија у обради слике је морфолошка операција која смањује и стањује границе објеката на слици уклањањем пиксела на ивицама објекта, чиме се објекти ефикасно смањују и уклањају мали бели шум.
јава низ динамички
Сврха
- Смањује или еродира границе објеката у првом плану (обично белих пиксела).
- Уклања фини бели шум и одваја предмете који се додирују.
Како то ради
- Кернел (обично 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). Ово смањује границе објекта и уклања мали бели шум.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Излаз:
команда у чвору јс
После ерозијеКорак 4: Нанесите дилатацију
Дилатација клизи кернел преко слике и пиксел постаје бео ако је бар један пиксел испод језгра бео. Ово згушњава беле регионе или предмете и испуњава мале рупе.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Излаз:
После проширењаАпликације
Ерозија
- Уклањање изолованог белог шума са слике.
- Раздвајање објеката који се спајају или додирују.
- Проналажење граница објекта смањењем величине објекта.
Дилатација
- Попуњавање малих рупа или празнина у објектима.
- Спајање поломљених или неповезаних делова истог објекта.
- Користи се након ерозије (као део операције 'отварања') за враћање величине објекта уз истовремено уклањање буке.
Ерозија и дилатација су основне морфолошке операције у обради слике које нам омогућавају да прецизирамо чисте и манипулишемо облицима унутар слика. Коришћењем једноставних структурних елемената, ове технике помажу у уклањању шума одвојеним или повезивању објеката и побољшавају карактеристике слике што их чини основним алатима за ефикасну претходну обраду и анализу у задацима компјутерског вида са ОпенЦВ и Питхон-ом.
Креирај квиз