logo

Ерозија и проширење слика коришћењем ОпенЦВ-а у Питхон-у

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

Ерозија

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

јава низ динамички

Сврха

  • Смањује или еродира границе објеката у првом плану (обично белих пиксела).
  • Уклања фини бели шум и одваја предмете који се додирују.

Како то ради

  • Кернел (обично 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) 

Излаз:

оригинал-мачка' title=Оригинал

Корак 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() 

Излаз:

команда у чвору јс
ерозија' loading='lazy' title=После ерозије

Корак 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() 

Излаз:

дилатација' loading='lazy' title=После проширења

Апликације

Ерозија

  • Уклањање изолованог белог шума са слике.
  • Раздвајање објеката који се спајају или додирују.
  • Проналажење граница објекта смањењем величине објекта.

Дилатација

  • Попуњавање малих рупа или празнина у објектима.
  • Спајање поломљених или неповезаних делова истог објекта.
  • Користи се након ерозије (као део операције 'отварања') за враћање величине објекта уз истовремено уклањање буке.

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

Креирај квиз