Morfologiset operaatiot muokkaavat kuvia pikselien rakenteen ja järjestelyn perusteella. Ne soveltavat syötekuvaan ydintä muuttaakseen sen ominaisuuksia viereisten pikselien järjestelyn mukaan. Morfologiset toiminnot, kuten eroosio ja laajentuminen, ovat kuvankäsittelytekniikoita erityisesti binääri- tai harmaasävykuville. Ne auttavat analysoimaan muotoja, jotka puhdistavat melua ja tarkentavat objektien rajoja.
Eroosio
Eroosio kuvankäsittelyssä on morfologinen toimenpide, joka kutistaa ja ohentaa kuvan kohteiden rajoja poistamalla pikseleitä kohteen reunoista pienentäen kohteita tehokkaasti ja poistamalla pientä valkoista kohinaa.
Tarkoitus
- Kutistaa tai syövyttää etualan objektien rajoja (yleensä valkoisia pikseleitä).
- Poistaa hienon valkoisen kohinan ja erottaa koskettavat kohteet.
Miten se toimii
- Ydin (yleensä 3 × 3 5 × 5 tai 7 × 7 -matriisi) liukuu kuvan poikki.
- Pikseli pysyy valkoisena (1) vain, jos kaikki ytimen alla olevat pikselit ovat valkoisia. muuten se muuttuu mustaksi (0).
- Tämä prosessi pienentää kohteen kokoa ja syövyttää reunoja.
Laajentuminen
Dilataatio on morfologinen toimenpide, joka laajentaa kuvan objektien rajoja lisäämällä pikseleitä kohteen reunoihin, jolloin kohteet näyttävät suuremmilta ja täyttävät pieniä aukkoja tai reikiä.
Tarkoitus:
- Laajentaa etualalla olevien objektien rajoja.
- Korostaa tai suurentaa piirteitä ja täyttää pieniä aukkoja.
Miten se toimii:
- Ydin on samalla tavalla taittunut kuvan päälle.
- Pikseli on asetettu valkoiseksi (1), jos ainakin yksi ytimen alla olevista vastaavista pikseleistä on valkoinen.
- Tämän seurauksena valkoiset alueet kasvavat yhdistämällä pieniä reikiä tai yhdistämällä rikkoutuneita osia yhteen.
Eroosion ja laajentumisen toteutus
Toteutetaan eroosio ja laajeneminen OpenCV:llä Pythonissa
Vaihe 1: Tuo kirjastot
Tuomme tarvittavat kirjastot
- cv2 : OpenCV-kirjasto kuvankäsittelyyn.
- nuhjuinen : Numeerisiin operaatioihin ja ytimien luomiseen.
- matplotlib.pyplot : Kuvien näyttäminen muistikirjoissa.
Vaihe 2: Lataa syöttökuva ja määritä rakenneelementit (ydin)
Ydin määrittää toiminnon alueen. Yleisiä valintoja ovat suorakulmiot tai levyt.
cpld vs fpga
PythonKäytetty kuva on ladattavissa osoitteesta tässä .
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)
Lähtö:
AlkuperäinenVaihe 3: Käytä Eroosiota
Eroosio toimii liu'uttamalla ydintä kuvan poikki. Pikseli pysyy valkoisena (255) vain, jos kaikki ytimen alla olevat pikselit ovat valkoisia, muuten siitä tulee musta (0). Tämä vähentää kohteen rajoja ja poistaa pientä valkoista kohinaa.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Lähtö:
opi seleeniä
Eroosion jälkeenVaihe 4: Käytä laajennusta
Dilataatio liukuu ytimen kuvan poikki ja pikselistä tulee valkoinen, jos vähintään yksi ytimen alla oleva pikseli on valkoinen. Tämä paksuntaa valkoisia alueita tai esineitä ja täyttää pienet reiät.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Lähtö:
Laajentumisen jälkeenSovellukset
Eroosio
- Eristetyn valkoisen kohinan poistaminen kuvasta.
- Liitettyjen tai koskettavien kohteiden erottaminen.
- Kohteiden rajojen etsiminen pienentämällä objektin kokoa.
Laajentuminen
- Pienten reikien tai aukkojen täyttäminen esineissä.
- Saman kohteen rikkoutuneiden tai irrotettujen osien yhdistäminen.
- Käytetään eroosion jälkeen (osana "avaamista") palauttamaan objektin koko ja pitämään melu pois.
Eroosio ja laajentuminen ovat kuvankäsittelyn perusmorfologisia operaatioita, joiden avulla voimme jalostaa puhtaita ja käsitellä kuvien muotoja. Käyttämällä yksinkertaisia rakenneelementtejä nämä tekniikat auttavat poistamaan kohinaa erottamaan tai yhdistämään esineitä ja parantamaan kuvan ominaisuuksia tehden niistä välttämättömiä työkaluja tehokkaaseen esikäsittelyyn ja analysointiin tietokonenäkötehtävissä OpenCV:n ja Pythonin avulla.
Luo tietokilpailu