Morfologiske operasjoner endrer bilder basert på strukturen og arrangementet av piksler. De bruker kjerne på et inngangsbilde for å endre funksjonene avhengig av arrangementet av nabopiksler. Morfologiske operasjoner som erosjon og dilatasjon er teknikker i bildebehandling, spesielt for binære bilder eller gråtonebilder. De hjelper til med å analysere former som renser støy og foredler objektgrenser.
Erosjon
Erosjon i bildebehandling er en morfologisk operasjon som krymper og tynner ut grensene til objekter i et bilde ved å fjerne piksler på objektkanter som effektivt gjør objekter mindre og fjerner liten hvit støy.
Hensikt
- Krymper eller eroderer grensene til forgrunnsobjekter (vanligvis hvite piksler).
- Fjerner fin hvit støy og skiller gjenstander som berører.
Hvordan det fungerer
- En kjerne (vanligvis en 3×3 5×5 eller 7×7 matrise av enere) glir over bildet.
- En piksel forblir hvit (1) bare hvis alle piksler under kjernen er hvite. ellers blir den svart (0).
- Denne prosessen reduserer objektstørrelsen og eroderer kanter.
Utvidelse
Dilatasjon er en morfologisk operasjon som utvider grensene til objekter i et bilde ved å legge til piksler til objektkanter som gjør at objekter ser større ut og fyller ut små hull eller hull.
Hensikt:
- Utvider grensene til forgrunnsobjektene.
- Fremhever eller forstørrer funksjoner og fyller små hull.
Slik fungerer det:
- Kjernen er på samme måte viklet over bildet.
- En piksel er satt til hvit (1) hvis minst én av de tilsvarende pikslene under kjernen er hvite.
- Som et resultat vokser de hvite områdene sammen med små hull eller sammenføyer ødelagte deler.
Implementering av erosjon og dilatasjon
La oss implementere erosjon og utvidelse med OpenCV i Python
Trinn 1: Importer biblioteker
Vi vil importere de nødvendige bibliotekene
- cv2 : OpenCV-bibliotek for bildebehandling.
- nusset : For numeriske operasjoner og for å lage kjerner.
- matplotlib.pyplot : For å vise bilder i notatbøker.
Trinn 2: Last inn inngangsbilde og definer strukturelementene (kjernen)
Kjernen definerer området for operasjonen. Vanlige valg er rektangler eller disker.
PythonBrukt bilde kan lastes ned fra her .
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)
Produksjon:
OpprinneligTrinn 3: Påfør erosjon
Erosjon fungerer ved å skyve kjernen over bildet. En piksel forblir hvit (255) bare hvis alle piksler under kjernen er hvite, ellers blir den svart (0). Dette reduserer objektgrenser og fjerner liten hvit støy.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Produksjon:
Etter erosjonTrinn 4: Påfør dilatasjon
Utvidelse skyver kjernen over bildet og en piksel blir hvit hvis minst én piksel under kjernen er hvit. Dette gjør hvite områder eller gjenstander tykkere og fyller små hull.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Produksjon:
Etter utvidelseSøknader
Erosjon
- Fjerner isolert hvit støy fra et bilde.
- Skille gjenstander som er sammenføyd eller berører.
- Finne objektgrenser ved å krympe objektstørrelsen.
Utvidelse
- Fylle små hull eller hull i gjenstander.
- Sammenføyning av ødelagte eller frakoblede deler av samme gjenstand.
- Brukes etter erosjon (som en del av "åpnings"-operasjonen) for å gjenopprette objektstørrelsen samtidig som støy fjernes.
Erosjon og dilatasjon er grunnleggende morfologiske operasjoner i bildebehandling som lar oss foredle rene og manipulere former i bilder. Ved å bruke enkle struktureringselementer hjelper disse teknikkene med å fjerne støy, separere eller koble sammen objekter og forbedre bildefunksjoner som gjør dem til essensielle verktøy for effektiv forbehandling og analyse i datasynsoppgaver med OpenCV og Python.
Lag quiz