Втор колоквиум part 2 Flashcards

1
Q

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

A

cv2.dft(np.float32(img),flags=cv2.DFT_COMPLEX_OUTPUT)

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

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

A

1) Фуриева трансформација
2) Центрирање на нултата фреквенција во средина
dft_shift = np.fft.fftshift(dft)
3) Калкулирање на magnitude spectrum
magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))

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

Кој е алгоритмот за template matching за еден објект?

A

1) Се лоадира целосната слика и template сликата
2) Со помош на
rez = cv2.templateMatching(img, template, cv2.TM_something) се пронаоѓа во сликата бараниот темплејт
3)min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(rez)
4) Ако методот == TM_SQUDIFF : top-left = min_loc
Инаку, top-left: max_loc
5) bottom_right = (top_left[0] + width, top_left[1] + height)
cv2.rectangle(img,top_left, bottom_right, 255, 2)

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

Кој е алгоритмот за template matching за повеќе објекти?

A

1) Лоадираме слика и соодветен темплејт
2) Креираме threshold (ex: 0.8)
3) rez = cv2.templateMatching(img_gray, template, cv2.TM_something)
4) loc = np.where(rez > threshold)
5) for pt in zip(*loc):
cv2. rectangle(img, pt, (pt[0] + w, pt[1] + h), 255, 2)

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

Која функција се користи за Shi-Tomasi Corner Detection?

A
rez =  cv.goodFeaturesToTrack()
//ги наоѓа N-те најизразени кошиња
Влезни аргументи:
arg1 - img in grayscale
arg2 - бр. на ќошиња што сакаш да ги најдеш
arg3 - quality level (0-1)
arg4 - минимална дистанца меѓу кошињата
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

За детекција на кошиња, со помош на cv.cornerHarris(), кои се влезните параметри?

A

arg1 - img in grayscale & float32 type
arg2 - blocksize [големина на соседство]
arg3 - ksize
arg4 - k

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

Како може на друг начин да детектираме и одбележеме ќошиња со помош на sift?

A

sift = cv2.SIFT_create()
k, d = cv2.sift.detectAndCompute(gray, None)
cv2.drawKeyPoints(gray, k, img)

Доколку сакаме да го истакнеме и радиусот на кругот
img = cv2.drawKeypoints(gray, kps, img, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

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