Приложение My 3D Scanner сканирует некоторые объекты под разными углами, чтобы в конечном итоге восстановить поверхность под углом 360 °. Облака точек каждого сканирования имеют различные количества точек и должны быть объединены. В библиотеке PCL, которую я хотел бы использовать для реконструкции, есть алгоритмы объединения облаков точек с одинаковым количеством точек, используя какой-то итеративный метод ближайших точек.
Я хотел бы избежать выяснения оси вращения. Конечно, зная его положение и угол поворота, я мог бы просто умножить все свои точки одного облака на матрицу вращения, а затем объединить облака. Есть ли способ объединить их, не зная центра вращения?
-121--1685020-Я пытаюсь подписать свое сообщение Amazon AWS (внутри теста JUnit), но я столкнулся с проблемой. Вот код, который я использую:
String secretAccessKey = "secret1234678901";
SecretKeySpec keySpec = new SecretKeySpec(secretAccessKey.getBytes(UTF-8), "HmacSHA256");
Mac mac = Mac.getInstance(this.MAC_ALGO);
mac.init(keySpec); // here it breaks
byte[] encoded = mac.doFinal(
request.toString().getBytes(this.CHARSET));
return Base64.encodeBase64URLSafeString(encoded);
В строке с пометкой ( mac.init (...)
) java бросает исключение:
java.lang.ClassCastException: com.sun.crypto.provider.HmacSHA1 cannot be cast to javax.crypto.MacSpi
at javax.crypto.Mac.a(DashoA13*..)
at javax.crypto.Mac.init(DashoA13*..)
Знаете ли вы, почему это происходит? Все коды, которые я видел в сети, выглядят почти точно так, я также пробовал с HmacSHA1, с теми же результатами.