Arvutiteaduse instituut
  1. Esileht
  2. IT koolidele
EN
Logi sisse

IT koolidele

  • OpenCV sissejuhatus
  • OpenCV paigaldamine
  • Vajalike materjalide allalaadimine
  • Mis on pilt?
  • Pildid
  • Kaamera kasutamine
  • Pilditöötlus
  • Objektide tuvastus
  • Lisa: Panoraam

Mis on pilt?

Digitaalne pilt on nagu maatriks või ruudustik, kus iga ruudu ehk piksli värv on esitatud numbrilise väärtusega. Iga piksel on defineeritud kolme põhivärviga: punane ehk red (R), roheline ehk green (G) ja sinine ehk blue (B). Muutes RGB spektrumi intensiivsust on võimalik luua kõik teised inimese silmale nähtavad värvid.

Piksli mõiste: Piksel on digitaalse pildi väikseim üksus. Pikseli värv määratakse peamiselt RGB värvimudeli abil, kus igale põhivärvile on omistatud väärtus vahemikus 0 kuni 255. Näiteks piksel, mille väärtus on (255, 0, 0), on puhas punane.

Resolutsioon ja suurus: Pildi resolutsioon määrab, kui palju piksleid on pildis horisontaalselt ja vertikaalselt. Näiteks 1920x1080 resolutsiooniga pilt koosneb 1920 pikslist laiuses ja 1080 pikslist kõrguses.

Siin on pilt malelauast, kuidas näeb arvuti seda pilti?

Selle pildi resolutsioon ehk suurus on 18 x 18 pikslit.

Kuidas on võimalik seda pilti kujutada maatriksina?

import cv2
import matplotlib.pyplot as plt

cb_img = cv2.imread("checkerboard_18x18.png", 0)
print(cb_img)

Mitu pikslit lai on malelaual must ruut, kui pildi resolutsioon on 18 x 18 pikslit?

Värvimudel RGB


Värvimudel on abstraktne matemaatiline mudel värvide kirjeldamiseks. Värvimudeli abil on numbrilised väärtused kujutatud kolme või nelja osaliste järjendite abil.

RGB (red,green,blue) värvimudel, mis tähistab punast, rohelist ja sinist, on värvimudel, mida kasutatakse digitaalsetes ekraanides ja valgustuses, et luua erinevaid värve valguse kolme põhivärvi kombinatsiooni kaudu. RGB värvikanalitega töötamine tähendab iga värvikomponendi (punane, roheline ja sinine) intensiivsuse reguleerimist sõltumatult, et saavutada lai valik värve.

All toodud on rakendust, mis aitab aru saada RGB värvikanalitest ning kuidas erinevaid värve teha, muutes RGB kolme kanali väärtusi.

OpenCV kasutab BGR värvimudelit, see on RGB värvimudel tagurpidi. See on tingitud sellest, et OpenCV algusaegadel oli kaamera tootjate ning tarkvara arendajatel BGR formaadil suurem tugi.

Käivitage Thonny ning kopeerige see kood endale.

Proovige liugureid libistada ja uuriga, kuidas erinevad värvid tekivad RGB kombinatsioonist.

import numpy as np
import cv2 as cv

def nothing(x):
 pass

#loome musta pildi
img = np.zeros((300,600,3), np.uint8)
cv.namedWindow('image')

# loome liugurid värvide muutmiseks
cv.createTrackbar('RED','image',0,255,nothing)
cv.createTrackbar('GREEN','image',0,255,nothing)
cv.createTrackbar('BLUE','image',0,255,nothing)

while(1):
 cv.imshow('image',img)
 k = cv.waitKey(1) & 0xFF
 if k == 27:
     break

 # hetkene liugurite positsioon
 r = cv.getTrackbarPos('RED','image')
 g = cv.getTrackbarPos('GREEN','image')
 b = cv.getTrackbarPos('BLUE','image')

 img[:] = [b,g,r]
cv.destroyAllWindows()

Tulemus peaks nägema välja selline

Kuidas on võimalik luua oranži värvi, mis peavad olema RGB kanalite väärtused?

  • A R:255 G:0 B:150
  • B R:150 G:255 B:0
  • C R:255 G:150 B:0
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused