logo

Erosion och utvidgning av bilder med OpenCV i Python

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.

Begagnad bild kan laddas ner från här .

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) 

Produktion:

original-katt' title=Original

Steg 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.

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

Produktion:

erosion' loading='lazy' title=Efter erosion

Steg 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.

Python
img_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show() 

Produktion:

utvidgning' loading='lazy' title=Efter dilatation

Ansö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