Morfologiska operationer modifierar bilder baserat på strukturen och arrangemanget av pixlar. De tillämpar kärna på en ingångsbild för att ändra dess egenskaper beroende på arrangemanget av angränsande pixlar. Morfologiska operationer som erosion och dilatation är tekniker vid bildbehandling, speciellt för binära bilder eller gråskalebilder. De hjälper till att analysera former som rengör buller och förfinar objektgränser.
Erosion
Erosion i bildbehandling är en morfologisk operation som krymper och förtunnar gränserna för objekt i en bild genom att ta bort pixlar på objektkanterna som effektivt gör objekt mindre och tar bort litet vitt brus.
Ändamål
- Krymper eller eroderar gränserna för förgrundsobjekt (vanligtvis vita pixlar).
- Tar bort fint vitt brus och separerar föremål som rör vid.
Hur det fungerar
- En kärna (vanligtvis en 3×3 5×5 eller 7×7 matris av ettor) glider över bilden.
- En pixel förblir vit (1) endast om alla pixlar under kärnan är vita; annars blir det svart (0).
- Denna process minskar objektstorleken och eroderar kanter.
Utvidgning
Utvidgning är en morfologisk operation som utökar gränserna för objekt i en bild genom att lägga till pixlar till objektkanterna så att objekt ser större ut och fyller i små luckor eller hål.
Ändamål:
- Expanderar gränserna för förgrundsobjekten.
- Accentuerar eller förstorar funktioner och fyller små luckor.
Hur det fungerar:
- Kärnan är på liknande sätt invecklad över bilden.
- En pixel är inställd på vit (1) om minst en av motsvarande pixlar under kärnan är vit.
- Som ett resultat av de vita områdena växer samman små hål eller sammanfogar trasiga delar.
Implementering av Erosion och Dilatation
Låt oss implementera Erosion och Dilation med OpenCV i Python
Steg 1: Importera bibliotek
Vi kommer att importera de nödvändiga biblioteken
få arraylängd i c
- cv2 : OpenCV-bibliotek för bildbehandling.
- numpy : För numeriska operationer och för att skapa kärnor.
- matplotlib.pyplot : För att visa bilder i anteckningsböcker.
Steg 2: Ladda indatabild och definiera strukturelementen (kärnan)
Kärnan definierar området för operationen. Vanliga val är rektanglar eller skivor.
PythonBegagnad bild kan laddas ner från här .
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)
Produktion:
OriginalSteg 3: Applicera erosion
Erosion fungerar genom att skjuta kärnan över bilden. En pixel förblir vit (255) endast om alla pixlar under kärnan är vita, annars blir den svart (0). Detta minskar objektgränser och tar bort små vitt brus.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Produktion:
Efter erosionSteg 4: Applicera dilatation
Utvidgning glider kärnan över bilden och en pixel blir vit om minst en pixel under kärnan är vit. Detta gör vita områden eller föremål tjockare och fyller ut små hål.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Produktion:
Efter dilatationAnsökningar
Erosion
- Ta bort isolerat vitt brus från en bild.
- Separera objekt som är sammanfogade eller vidrör.
- Hitta objektgränser genom att krympa objektstorleken.
Utvidgning
- Fylla små hål eller luckor i föremål.
- Sammanfogning av trasiga eller frånkopplade delar av samma föremål.
- Används efter erosion (som en del av öppningsoperationen) för att återställa objektstorleken samtidigt som bruset hålls borta.
Erosion och dilatation är grundläggande morfologiska operationer i bildbehandling som gör att vi kan förfina rena och manipulera former i bilder. Genom att använda enkla struktureringselement hjälper dessa tekniker till att ta bort brus, separera eller koppla ihop objekt och förbättra bildfunktioner, vilket gör dem till viktiga verktyg för effektiv förbearbetning och analys i datorseende uppgifter med OpenCV och Python.
Skapa frågesport