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

bookReunojen Tunnistus

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

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

close

Awesome!

Completion rate improved to 3.45

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

some-alt