logo

Erózia a dilatácia obrázkov pomocou OpenCV v Pythone

Morfologické operácie upravujú obrázky na základe štruktúry a usporiadania pixelov. Aplikujú jadro na vstupný obrázok na zmenu jeho vlastností v závislosti od usporiadania susedných pixelov. Morfologické operácie, ako je erózia a dilatácia, sú techniky spracovania obrázkov, najmä pre binárne obrázky alebo obrázky v stupňoch šedej. Pomáhajú pri analýze tvarov, čistia hluk a upravujú hranice objektov.

Erózia

Erózia pri spracovaní obrazu je morfologická operácia, ktorá zmenšuje a stenčuje hranice objektov na obrázku odstránením pixelov na okrajoch objektov, čím sa objekty efektívne zmenšia a odstránia sa malý biely šum.

Účel

  • Zmršťuje alebo eroduje hranice objektov v popredí (zvyčajne biele pixely).
  • Odstraňuje jemný biely šum a oddeľuje predmety, ktoré sa dotýkajú.

Ako to funguje

  • Jadro (zvyčajne matica 3×3 5×5 alebo 7×7 jednotiek) sa posúva po obrázku.
  • Pixel zostane biely (1) iba vtedy, ak sú všetky pixely pod jadrom biele; inak bude čierna (0).
  • Tento proces znižuje veľkosť objektu a eroduje okraje.

Dilatácia

Dilatácia je morfologická operácia, ktorá rozširuje hranice objektov na obrázku pridaním pixelov k okrajom objektu, čím sa objekty zväčšujú a vypĺňajú sa malé medzery alebo diery.



Účel:

  • Rozširuje hranice objektov v popredí.
  • Zvýrazňuje alebo zväčšuje črty a vypĺňa malé medzery.

Ako to funguje:

  • Jadro je podobne konvolvované nad obrázkom.
  • Pixel je nastavený na bielu (1), ak  aspoň jeden  zodpovedajúcich pixelov pod jadrom je biely.
  • Výsledkom je, že biele oblasti rastú a spájajú malé otvory alebo spájajú zlomené časti dohromady.

Realizácia erózie a dilatácie

Implementujme eróziu a dilatáciu s OpenCV v Pythone

normalizácia rdbms

Krok 1: Importujte knižnice

Naimportujeme potrebné knižnice

  • cv2 : Knižnica OpenCV na spracovanie obrázkov.
  • numpy : Na numerické operácie a vytváranie jadier.
  • matplotlib.pyplot : Na zobrazenie obrázkov v notebookoch.

Krok 2: Načítajte vstupný obrázok a definujte štruktúrne prvky (jadro)

Jadro definuje okolie operácie. Bežné možnosti sú obdĺžniky alebo disky.

Použitý obrázok je možné stiahnuť z tu .

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) 

výstup:

konvertovať reťazec na jsonobject java
originál-kat' title=Originál

Krok 3: Aplikujte eróziu

Erózia funguje posúvaním jadra po obrázku. Pixel zostane biely (255) iba vtedy, ak sú všetky pixely pod jadrom biele, inak sa stane čiernym (0). Tým sa znížia hranice objektov a odstráni sa malý biely šum.

Python
img_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show() 

výstup:

erózia' loading='lazy' title=Po erózii

Krok 4: Aplikujte dilatáciu

Dilatácia posúva jadro po obrázku a pixel sa stane bielym, ak je aspoň jeden pixel pod jadrom biely. Tým sa zahustia biele oblasti alebo predmety a vyplnia sa malé otvory.

umelá inteligencia a inteligentní agenti
Python
img_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show() 

výstup:

dilatácia' loading='lazy' title=Po rozšírení

Aplikácie

Erózia

  • Odstránenie izolovaného bieleho šumu z obrázka.
  • Oddeľovanie predmetov, ktoré sú spojené alebo sa dotýkajú.
  • Nájdenie hraníc objektu zmenšením veľkosti objektu.

Dilatácia

  • Vypĺňanie malých dier alebo medzier v predmetoch.
  • Spájanie zlomených alebo odpojených častí toho istého objektu.
  • Používa sa po erózii (ako súčasť operácie „otvárania“) na obnovenie veľkosti objektu pri zachovaní eliminácie hluku.

Erózia a dilatácia sú základnými morfologickými operáciami pri spracovaní obrazu, ktoré nám umožňujú zjemniť čisté a manipulovať s tvarmi v rámci obrázkov. Použitím jednoduchých štruktúrovacích prvkov tieto techniky pomáhajú odstraňovať šum, oddeľujú alebo spájajú objekty a zlepšujú vlastnosti obrazu, čo z nich robí základné nástroje pre efektívne predbežné spracovanie a analýzu v úlohách počítačového videnia pomocou OpenCV a Pythonu.

Vytvoriť kvíz