Втор колоквиум part 2 Flashcards
Како се врши фуриева трансформација?
cv2.dft(np.float32(img),flags=cv2.DFT_COMPLEX_OUTPUT)
Кој е алгоритмот за креирање на спектар во слика?
1) Фуриева трансформација
2) Центрирање на нултата фреквенција во средина
dft_shift = np.fft.fftshift(dft)
3) Калкулирање на magnitude spectrum
magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))
Кој е алгоритмот за template matching за еден објект?
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)
Кој е алгоритмот за template matching за повеќе објекти?
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)
Која функција се користи за Shi-Tomasi Corner Detection?
rez = cv.goodFeaturesToTrack() //ги наоѓа N-те најизразени кошиња
Влезни аргументи: arg1 - img in grayscale arg2 - бр. на ќошиња што сакаш да ги најдеш arg3 - quality level (0-1) arg4 - минимална дистанца меѓу кошињата
За детекција на кошиња, со помош на cv.cornerHarris(), кои се влезните параметри?
arg1 - img in grayscale & float32 type
arg2 - blocksize [големина на соседство]
arg3 - ksize
arg4 - k
Како може на друг начин да детектираме и одбележеме ќошиња со помош на sift?
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)