3D pointcloud global registration RANSAC 算法的python实现,除了基本的库函数外,没有实现现成的RANSAC函数。Python实现这个算法运行效率特别低,跑起来很慢,效果也没能比得上库函数。下面附上效果图和代码:
import cv2
import open3d as o3d
from matplotlib import pyplot as pyplot
import numpy as np
import copy
import scipy
from scipy import spatial
import random
import sys
import math
#Kabsch Algorithm
def compute_transformation(source,target):
#Normalization
number = len(source)
#the centroid of source points
cs = np.zeros((3,1))
#the centroid of target points
ct = copy.deepcopy(cs)
cs[0] = np.mean(source[:][0]);cs[1]=np.mean(source[:][1]);cs[2]=np.mean(source[:][2])
ct[0] = np.mean(target[:][0]);cs[1]=np.mean(target[:][1]);cs[2]=np.mean(target[:<