Python SIFT Descriptor сокращение с использованием PCA - PullRequest
1 голос
/ 07 января 2020

У меня есть дескрипторы изображения, которое я генерирую с помощью метода SIFT в PYTHON, и я хочу уменьшить размерность с помощью PCA, но я не понял, как это сделать. Есть пример, но он использует Matlab. Может ли кто-нибудь помочь мне решить эту проблему, используя python, или у меня есть какая-то ссылка, которую я могу прочитать?

из данных, которые я получаю, дескриптор изображения

спасибо.

def pickle_keypoints(keypoints, descriptor, name):
i = 0
temp_array = []
for point in keypoints:
    temp = (point.pt, point.size, point.angle, point.response, point.octave,
    point.class_id)    
    temp_array.append(temp)  
keypoints_desc_name = (temp_array,descriptor,name) 
return keypoints_desc_name

surf = cv2.xfeatures2d.SURF_create()

for (x, y, w, h) in data:
    crop_face = image[y:y+h,x:x+w] ## y dan x sengaja dibalik
    kp, des = surf.detectAndCompute(crop_face, None)
    print('len(keypoints)', len(kp))
    temp = pickle_keypoints(kp, des, name)
    SURF_keypoints_descriptors_names.append(temp)
...