Прв колоквиум - part 2 Flashcards

1
Q

Кој е алгоритмот за clustering?

A

[истиот концепт се одвива и со повеќе центроди]

1) Random се генерираат две центроиди x и y
2) Точките што се поблиску до првиот центроид спаѓаат во еден хистограм, а точките што се поблиску до вториот центроид спаѓаат во друг хистограм.
3) Се калкулира вредноста на точките во двата кластери поединечно -> главен центроид
4) Процесот се повторува итеративно

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Како се генерираат random бројки од 170-255 поставени во низа од 6 елементи?

A

np.random.randint(175,255,6)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Како може да се спојат две низи во една?

A

np.hstack((x,y)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Како дефинираме criteria наменета за cv2.kmeans()?

A

criteria = (MAX_ITER + EPS, x, y)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Колку вредности враќа cv2.kmeans()?

A

3 вредности:

1) compactness
2) labels: поделбата на кластерите
3) centers: random генерираните центроиди

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Како може да изгенерираме random 25 бројки со една димензија од 25-100?

A

np.random.randint(25,100, (25,1))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Како може да изгенерираме random 25 бројки со две димензии од 25-100?

A

np.random.randint(25,100, (25,2))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Каква низа прима cv2.kmeans()?

A

float низа

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Како се спојуваат две матрици во една?

A

np.vstack((x,y))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Како правеме хистограм за кластер од низа?

A

A = niza[lables == 0]

plt.hist(A)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Како правеме хистограм за кластер од матрица?

A

A = [labels == 0]

plt.scatter(A[:,0], A[:,1])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Кои параметри ги има plt.scatter()?

A

matrix, s [големина на маркер], color,

marker [’s’ коцка маркер; ‘o’ круг маркер]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Кои се двата начини на промена на големина на слика?

A

1) cv2.resize(img, None, fx = , fy = , interpolation = cv2.INTER_)
2) cv2.resize(img, (height4, width2))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Со која cv2 функција правеме транслација?

A

cv2.warpAffine()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Која е матрицата за транслација во x,y оска?

A

[1 0 -за х
0 1 -за у]

т.е. np.float32([1,0,100], [0,1,50]) -> сликата се поместува за 100 во однос на х оската и 50 во однос на у оската

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Колку параметри прима cv2.warpAffine()?

A

3 параметри

img, matricata, goleminata na slikata

17
Q

Со која функција се ротира една слика и кои параметри ги прима?

A

cv2.getRotationMatrix2D() па оваа матрица се вметнува во warpAffine

1) central pixel: rows/2, cols/2
2) колку степени сакаме да ја ротираме
3) вредност за скалирање на сликата

18
Q

Ако сакаме сите рабови на една слика да бидат паралелни што користеме?

A

cv2.getAffineTransfrom() -> матрица
и оваа матрица ја вметнуваме во warpAffine

1) Се креираат 3 input и 3 output точки
2) ги спојуваме во една матрица 2x3
3) ја применуваме warpAffine

19
Q

Ако сакаме да детектираме слика и на истата рабовите да и бидат прави или исправени што користеме?

A

1) 4 влезни и 4 излезни точки
(3 од тие точки не смеат да бидат колинеарни)
2) со getPerspectiveTransform() земаме 3х3 матрица
3) таа матрица ја вметнуваме во warpAffine

20
Q

Како детектираме најсветла и најтемна локација во една слика?

A

(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(img)

1) minLoc: најтемна точка
2) maxLoc: најсветла точка

21
Q

Како може да нацртаме круг на една слика?

A

cv2.circle(img, lokacija, radius, boja,thickness)

22
Q

Како може да нацртаме правоаголник на една слика?

A

cv2.rectangle(img, top-left-corner, top-right-corner, color, thickness)

23
Q

Како може ние самите без употреба на готова функција да детектираме рабови?

A

1) Отстрануваме шум
2) Низата на сликата ја конвертираме во float формат
3) креираме матрица1 за хоризонтални рабови
4) креираме матрица2 за вертикални рабови
5) матрица1 ја вметнуваме во filter2D(img, -1, matrix)
6) истото го правеме со матрица2
7) Сликата ја конвертираме со апсолутна вредност
8) ја делиме сликата со максимланиот пиксел во истата кај двете матрици
9) креираме магнитуда: magn = np.sqrt(np.power(matrix1,2)+np.power(matrix2,2))
10) Правеме (не мора) threshold на магнитудата за да се истакнат повеќе рабовите

24
Q

Кои параметри ги прима Sobel функцијата?

A

img, depth, x, y, kernel_size

25
Q

Кои параметри ги прима Laplacian функцијата?

A

img и прецизност на сликата

26
Q

Кои се параметрите на CannyEdge функцијата?

A

img, thres1, thres2, True/False [во зависност од тоа која формула ја користеме]

27
Q

Кои параметри ги прима функцијата cv2.CreateTrackBar()?

A

trackbarname, windowName, lowerLimit, upperLimit, onChangeFunction

28
Q

Како може да се земе моменталната вредност што ја има trackbar-от?

A

cv2.getTrackbarPos()

29
Q

Со кои функции може да се отсрани шум?

A

1) cv2.Gaussian(img, kernel, 0)

2) cv2.medianBlur(img, kernelSize)

30
Q

За што служи параметарот cv2.INTER_AREA a за што cv2.INTER_LINEAR?

A

За смалување и зголемување соодветно

31
Q

Кои параметри ги прима функцијата cv2.bilateralFIlter()?

A

img, size, sigma_color, sigma_space