Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Perusmuunnokset | Kuvankäsittely OpenCV:llä
Tietokonenäön Perusteet

bookPerusmuunnokset

Note
Määritelmä

OpenCV (Open Source Computer Vision Library) on tehokas avoimen lähdekoodin kirjasto, joka on suunniteltu reaaliaikaiseen konenäköön ja kuvankäsittelyyn. Se tarjoaa työkaluja kuvien muokkaamiseen, objektien tunnistamiseen sekä syväoppimismallien kanssa työskentelyyn.

Kuvan lukeminen ja näyttäminen

Ennen muunnosten tekemistä ladataan ja näytetään kuva OpenCV:llä. Olemme jo tuoneet valokuvan. Mutta omalla tietokoneellasi yksinkertaiseen kuvan lukemiseen ja näyttämiseen käytä seuraavaa:

import cv2

image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)

Kuvan koon muuttaminen

Koon muuttaminen on hyödyllistä, kun halutaan skaalata kuvaa ylös- tai alaspäin säilyttäen kuvasuhde (ratio) (fx ja fy -parametrit), missä fx ja fy määrittävät leveyden ja korkeuden skaalauskertoimen.

resized_image = cv2.resize(image, fx=0.7, fy=0.5)

Voit myös määrittää tarkat pikselimitat (dsize-parametri), jossa dsize on (new_y, new_x) tulosteen koko.

resized = cv2.resize(image, (100, 100))

Kuvan kiertäminen

Kuvan kiertämiseen tietyn kulman verran käytetään funktioita cv2.getRotationMatrix2D() ja cv2.warpAffine().

  • cv2.getRotationMatrix2D(center, angle, scale) määrittää kiertomatriisin;
  • cv2.warpAffine(image, matrix, output_size) suorittaa muunnoksen.
height, width = image.shape[:2]
centre = (width // 2, height // 2)

rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))

Kuvan rajaaminen

Rajaaminen poimii tietyn alueen kuvasta. Tämä tehdään NumPy-leikkauksella. Syntaksi image[start_y:end_y, start_x:end_x] valitsee kiinnostusalueen.

cropped = image[450:500, 250:350]
Tehtävä

Swipe to start coding

Sinulle annetaan image:

  • Muuta kuvan koko muotoon (100, 100) ja tallenna se muuttujaan resized;
  • Hae height ja width kuvasta;
  • Laske center käyttäen height ja width arvoja;
  • Luo kiertomatriisi ja tallenna se muuttujaan rotation_matrix;
  • Kierrä kuvaa 90 astetta myötäpäivään ja tallenna se muuttujaan rotated;
  • Rajaa kuvan alue X: 250-600 ja Y: 100-450 ja tallenna se muuttujaan cropped.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 1
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain what each OpenCV function does in these examples?

How do I choose the right parameters for resizing or rotating an image?

Can you show more examples of image transformations?

close

Awesome!

Completion rate improved to 3.45

bookPerusmuunnokset

Pyyhkäise näyttääksesi valikon

Note
Määritelmä

OpenCV (Open Source Computer Vision Library) on tehokas avoimen lähdekoodin kirjasto, joka on suunniteltu reaaliaikaiseen konenäköön ja kuvankäsittelyyn. Se tarjoaa työkaluja kuvien muokkaamiseen, objektien tunnistamiseen sekä syväoppimismallien kanssa työskentelyyn.

Kuvan lukeminen ja näyttäminen

Ennen muunnosten tekemistä ladataan ja näytetään kuva OpenCV:llä. Olemme jo tuoneet valokuvan. Mutta omalla tietokoneellasi yksinkertaiseen kuvan lukemiseen ja näyttämiseen käytä seuraavaa:

import cv2

image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)

Kuvan koon muuttaminen

Koon muuttaminen on hyödyllistä, kun halutaan skaalata kuvaa ylös- tai alaspäin säilyttäen kuvasuhde (ratio) (fx ja fy -parametrit), missä fx ja fy määrittävät leveyden ja korkeuden skaalauskertoimen.

resized_image = cv2.resize(image, fx=0.7, fy=0.5)

Voit myös määrittää tarkat pikselimitat (dsize-parametri), jossa dsize on (new_y, new_x) tulosteen koko.

resized = cv2.resize(image, (100, 100))

Kuvan kiertäminen

Kuvan kiertämiseen tietyn kulman verran käytetään funktioita cv2.getRotationMatrix2D() ja cv2.warpAffine().

  • cv2.getRotationMatrix2D(center, angle, scale) määrittää kiertomatriisin;
  • cv2.warpAffine(image, matrix, output_size) suorittaa muunnoksen.
height, width = image.shape[:2]
centre = (width // 2, height // 2)

rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))

Kuvan rajaaminen

Rajaaminen poimii tietyn alueen kuvasta. Tämä tehdään NumPy-leikkauksella. Syntaksi image[start_y:end_y, start_x:end_x] valitsee kiinnostusalueen.

cropped = image[450:500, 250:350]
Tehtävä

Swipe to start coding

Sinulle annetaan image:

  • Muuta kuvan koko muotoon (100, 100) ja tallenna se muuttujaan resized;
  • Hae height ja width kuvasta;
  • Laske center käyttäen height ja width arvoja;
  • Luo kiertomatriisi ja tallenna se muuttujaan rotation_matrix;
  • Kierrä kuvaa 90 astetta myötäpäivään ja tallenna se muuttujaan rotated;
  • Rajaa kuvan alue X: 250-600 ja Y: 100-450 ja tallenna se muuttujaan cropped.

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 1
single

single

some-alt