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

1
Q

Како би затворил прозорец со кликање на копчето ESC.

A

k=cv2.waitKey(0)

if k==27: cv2.destroyAllWindows()

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

Како би зачувал слика со кликање на копчето ‘s’?

A

if k==ord(‘s’): cv2.imwrite(‘slika.jpg’,img)

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

Што се овозможува со plt.xticks([]) а што со plt.xlim([])?

Соодветно одговори и за y оска.

A
  • Со plt.xticks([value1,value2 . . . ]) и plt.yticks([value1,value2 . . . ]), се овозможува вметнување на вредностите: value1, value2 .. на соодветната оска.
  • Со plt.xlim([x-y]) и plt.ylim([x-y]) се задава ранг со вредности што ќе ги опфатат соодветните оски.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Зошто кај видеата waitKey ==1 ?

A

Бидејќи се чека 1 милисекунда да се кликне на некој кластер, доколку тоа не се направи се рефрешира и се враќа нова рамка.

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

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

A

Две вредности: ret (дали се вратило нешто при читање на видеото -> True/False) и frame(рамката што се враќа при вчитување на видео)

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

Со што проверуваме дали рамката е успешно вчтана?

A

if cap.isOpened() == True.

Ако не е -> cap.open()

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

Како се зачувува видео?

A
fourcc = Video_Writer_fourcc(*"XVID")
out = cv2.Video_Writer(imeNaZacuvanoVideo, fourcc, brojNaRamkiPerSecondDaSeZapisat, height&widthNaRamka)
.
.
.
out.write(frame) #vnatre vo while ciklus
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

cv2.flip(frame, y) -> Колку вредности може да има y?

A

3 вредности:
y<0: mirrored and upside down
y=0: upside down
y>0: mirrored

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

Како би ја промениле вредноста на пиксел во слика зачувана во img променлива?

A

img.itemset((100,100,2), 255) #ako slikata e vo BGR

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

Што враќа img.size?

A

Вкупниот број на пиксели во сликата

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

Што враќа img.shape?

A

height, width, channels

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

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

A

img[100:100:0]

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

Со која opencv функција се поставува border на слика?

A

cv2. copyMakeBorder(img,top,bottom,right,left,typeOfBorder)

- > Ако типот на border e cv2.BORDER_CONSTANT, се поставува и уште една вредност: value = 114 (example for blue)

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

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

A

cv2.resize(img, (height,width))

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

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

A

img[0:100, 30:700] (example) -> y1:y2 , x1:x2 т.е. првин висина па ширина

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

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

A

Враќа 2 вредности

  1. ret: вредноста на threshold
  2. mask: the thresholded picture
17
Q

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

A

4 аргументи

img, lower_limit, upper_limit, cv2.THRESH_?

18
Q

Како се детектира грешка кај слика, доколку првично е зададена оригиналната слика?

A

somewhere = np.zeros((height,width), np.uint8)

cv2.absdiff(orig_img, defect_img, somewhere)

19
Q

Како се врши equalization на слики во grayscale и BGR формат?

A

1) Grayscale: cv2.equilizeHist(img)
2) a) Convert the pic to YUV
b) img_yuv[:,:,0] = cv2.equilizeHist(img_yuv[:,:,0])
c) Convert img_yuv back to BGR

20
Q

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

A

1) cv2.CalcHist()

2) plt.hist()

21
Q

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

A

cv2.CalcHist()

22
Q

Како се прикажува хистограм креиран во cv2.CalcHist а ние го прикажуваме преку plt?

A

со plt.plot(histogram, color = ‘r’) [example]

23
Q

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

A

plt.legend(“title”, loc = ‘upper left’) [example]

24
Q

Што е карактеристично на операторот clipping?

A

Со помош на функцијата:

cv2.clip(img.flatten(), LL, UL).reshape(originalSize)

обезбедуваме вредности кои ако се надвор од определниот ранг, се заокружуваат на горната и долната граница.

25
Q

Што треба да се користи кај digital negative операторот?

A

y = 255 - img

26
Q

Која е логаритамската функција кај range compression?

A
c = 255 / log(1+maximum{pixels})
rez = c  * log(1+img)
27
Q

Колку равенки на прави се кај contrast stretching?

A

3.

alfa x r
beta x (r-r1) + s1
gama x (r-r2) + s2
28
Q

Која е формулата за gamma correction?

A

s = c * r ^ gamma

r : input image
gamma: <1 / ==1 / >1

*important: 255 * (img/255) **gamma

29
Q

Како одделно да се добијат вредностите за HSV?

A

hsv_img[:,:,0] #H
hsv_img[:,:,1] #S
hsv_img[:,:,2] #V

30
Q

Како да се истакне само сината боја со помош на HSV?

A

(1) Прво се конвертира сликата во HSV
(2) Се иницијализираат lower_blue i upper_blue граници за hue, saturation and value соодветно
(3) mask = cv2.inRange(hsv_img, lower_blue, upper_blue)
(4) result = cv2.bitwise_and(img,img,mask=mask)

31
Q

Кој е алгоритамот за истакнување на RGB во сликата?

A

(1) split image into its bgr components -> cv2.split()
(2) најди максимум пиксел над секоја компонента np.maximum((B,G),R)
(3) Сите пиксели помали од максимумот постави ги на нула
(4) Направи merge на компонентите