Как сделать мой расчет быстрее? проблема с добавлением из txt файла? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть текстовый файл, в котором

x1,y1,z1,w1,desc1
x2,y2,z2,w2,desc2
till
xn,yn,zn,wn,descn

x, y, z и w являются числами с плавающей запятой, c - 61 число с плавающей запятой (не массив или список! Рисунок на картинке только для иллюстрации)

Мне нужно применить уравнение, указанное ниже на картинке Необходимо применить уравнение и получить результат (u1 и v1 соответствуют desc1)

Мой код:

for i in range(len(Xsnew)):
            #Xsnew is all the x's in the txt file
            x_features = Xsnew[i]
            y_features = Ysnew[i]
            z_features = Zsnew[i]
            #print("x_features", x_features)
            # Feature coordinates is the 3x1 matrix x1 y1 z1 in the picture
            feature_coordinates = np.array([[x_features],[y_features],[z_features],[1]], dtype=float)
            # P in the picture is the projection matrix 
            position_of_features = np.dot(projection_matrix, feature_coordinates)
            u, v, w = position_of_features[0], position_of_features[1], position_of_features[2]
            u_normalized = u / w
            v_normalized = v / w
            #print("U normalized is {} and V normalized is {}". format(u_normalized,v_normalized))
            virtual_camera_desc = desc_features[i]
            #print("virtual_camera_desc", virtual_camera_desc)

            #print(" u = {} and v = {} and X_features = {} and desc = {}". format(u_normalized,v_normalized,x_features,virtual_camera_desc))
            if 0 < u_normalized < image_height and 0 < v_normalized < image_width:
                #print(len(desc), len(virtual_camera_desc))
                #print("I SEE FEATURES")
                bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck= True)
                matches = bf.match(desc, virtual_camera_desc)

Это сработало нормально, но так медленно. Мне нужно, чтобы алгоритм быстрее думал как-нибудь сделать "вживую". Но не знаете, с чего начать? Любой совет, пожалуйста?

Спасибо :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...