Прв колоквиум - part 2 Flashcards
Кој е алгоритмот за clustering?
[истиот концепт се одвива и со повеќе центроди]
1) Random се генерираат две центроиди x и y
2) Точките што се поблиску до првиот центроид спаѓаат во еден хистограм, а точките што се поблиску до вториот центроид спаѓаат во друг хистограм.
3) Се калкулира вредноста на точките во двата кластери поединечно -> главен центроид
4) Процесот се повторува итеративно
Како се генерираат random бројки од 170-255 поставени во низа од 6 елементи?
np.random.randint(175,255,6)
Како може да се спојат две низи во една?
np.hstack((x,y)
Како дефинираме criteria наменета за cv2.kmeans()?
criteria = (MAX_ITER + EPS, x, y)
Колку вредности враќа cv2.kmeans()?
3 вредности:
1) compactness
2) labels: поделбата на кластерите
3) centers: random генерираните центроиди
Како може да изгенерираме random 25 бројки со една димензија од 25-100?
np.random.randint(25,100, (25,1))
Како може да изгенерираме random 25 бројки со две димензии од 25-100?
np.random.randint(25,100, (25,2))
Каква низа прима cv2.kmeans()?
float низа
Како се спојуваат две матрици во една?
np.vstack((x,y))
Како правеме хистограм за кластер од низа?
A = niza[lables == 0]
plt.hist(A)
Како правеме хистограм за кластер од матрица?
A = [labels == 0]
plt.scatter(A[:,0], A[:,1])
Кои параметри ги има plt.scatter()?
matrix, s [големина на маркер], color,
marker [’s’ коцка маркер; ‘o’ круг маркер]
Кои се двата начини на промена на големина на слика?
1) cv2.resize(img, None, fx = , fy = , interpolation = cv2.INTER_)
2) cv2.resize(img, (height4, width2))
Со која cv2 функција правеме транслација?
cv2.warpAffine()
Која е матрицата за транслација во x,y оска?
[1 0 -за х
0 1 -за у]
т.е. np.float32([1,0,100], [0,1,50]) -> сликата се поместува за 100 во однос на х оската и 50 во однос на у оската
Колку параметри прима cv2.warpAffine()?
3 параметри
img, matricata, goleminata na slikata
Со која функција се ротира една слика и кои параметри ги прима?
cv2.getRotationMatrix2D() па оваа матрица се вметнува во warpAffine
1) central pixel: rows/2, cols/2
2) колку степени сакаме да ја ротираме
3) вредност за скалирање на сликата
Ако сакаме сите рабови на една слика да бидат паралелни што користеме?
cv2.getAffineTransfrom() -> матрица
и оваа матрица ја вметнуваме во warpAffine
1) Се креираат 3 input и 3 output точки
2) ги спојуваме во една матрица 2x3
3) ја применуваме warpAffine
Ако сакаме да детектираме слика и на истата рабовите да и бидат прави или исправени што користеме?
1) 4 влезни и 4 излезни точки
(3 од тие точки не смеат да бидат колинеарни)
2) со getPerspectiveTransform() земаме 3х3 матрица
3) таа матрица ја вметнуваме во warpAffine
Како детектираме најсветла и најтемна локација во една слика?
(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(img)
1) minLoc: најтемна точка
2) maxLoc: најсветла точка
Како може да нацртаме круг на една слика?
cv2.circle(img, lokacija, radius, boja,thickness)
Како може да нацртаме правоаголник на една слика?
cv2.rectangle(img, top-left-corner, top-right-corner, color, thickness)
Како може ние самите без употреба на готова функција да детектираме рабови?
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 на магнитудата за да се истакнат повеќе рабовите
Кои параметри ги прима Sobel функцијата?
img, depth, x, y, kernel_size