Institute of Computer Science
  1. Main page
  2. IT koolidele
ET
Log in

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
  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment