Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Reunojen Tunnistus | Kuvankäsittely OpenCV:llä
Tietokonenäön Perusteet
Osio 2. Luku 7
single

single

bookReunojen Tunnistus

Pyyhkäise näyttääksesi valikon

Reunojen tunnistus

Reunat edustavat äkillisiä muutoksia pikselin intensiteetissä, jotka yleensä vastaavat objektien rajoja. Reunojen tunnistaminen auttaa muotojen tunnistuksessa ja segmentoinnissa.

Sobel-reunojen tunnistus

Sobel-operaattori laskee gradientit (intensiteetin muutokset) sekä X- että Y-suunnassa, mikä auttaa tunnistamaan vaaka- ja pystysuorat reunat.

# Convert to grayscale
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

# Apply Sobel filter
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=5)  # Detects vertical edges
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=5)  # Detects horizontal edges
sobel_combined = cv2.magnitude(sobel_x, sobel_y)  # Combines both directions
Note
Huom

Keskeiset parametrit:

  • src: syötekuva (oltava harmaasävykuva);
  • ddepth: tuloskuvan bittisyvyys (esim. cv2.CV_64F);
  • dx: derivaatan aste X-suunnassa (aseta 1 vaakareunoille);
  • dy: derivaatan aste Y-suunnassa (aseta 1 pystyreunoille);
  • ksize: ytimen koko (oltava pariton, esim. 3, 5, 7).

Canny-reunojen tunnistus

Canny-reunantunnistin on monivaiheinen algoritmi, joka tuottaa tarkemmat reunat seuraavasti:

  1. Kohinan poisto Gaussin suodatuksella.
  2. Intensiteettigradienttien etsiminen Sobel-suodattimilla.
  3. Heikkojen reunojen vaimennus.
  4. Kaksoiskynnyksen ja reunojen jäljityksen käyttö.
# Apply Canny Edge Detector 
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)  
Note
Huomio
  • image: syöteharmaasävykuva;
  • threshold1: reunanilmaisun alempi kynnysarvo (esim. 50);
  • threshold2: reunanilmaisun ylempi kynnysarvo (esim. 150);
  • apertureSize (valinnainen): Sobel-ytimen koko (oletus: 3, oltava pariton);
  • L2gradient (valinnainen): käytä tarkempaa L2-normin gradienttilaskentaa (oletus: False).

Reunanilmaisumenetelmien vertailu:

reunanilmaisun vertailu
Tehtävä

Swipe to start coding

Sinulle annetaan image:

  • Muunna kuva harmaasävykuvaksi ja tallenna se muuttujaan gray_image;
  • Käytä Sobel-suodatinta X- ja Y-suuntaan (tulosyvyys cv2.CV_64F ja ytimen koko 3) ja tallenna tulokset sobel_x ja sobel_y;
  • Yhdistä Sobel-suodatetut suunnat muuttujaan sobel_img;
  • Käytä Canny-suodatinta kynnysarvoilla 200300 ja tallenna tulos muuttujaan canny_img.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 7
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt