На самом деле, я нахожусь в процессе программирования матричного логарифма в библиотеке Eigen, которая, очевидно, используется в некоторых библиотеках Willow Garage;не уверен насчет OpenCV.На мой взгляд, книга Хайама (см. Ответ от aix) - лучшая ссылка, и я реализую Алгоритм 11.11 в его книге.Хотя это довольно сложный алгоритм.
Диагонализация (как в комментарии Александра) - это простой в программировании метод, который очень хорошо работает для симметричных положительно определенных матриц.Это также хорошо работает для многих общих матриц.Тем не менее, он не является точным для матриц, чьи собственные значения близки друг к другу, и не подходит для матриц, которые не диагонализируются.
Если вы хотите что-то более надежное, чем диагонализация, но менее сложное, чем алгоритм Higham 11.11, то я бы порекомендовалсделать разложение по Шуру с последующим обратным масштабированием и возведением в квадрат.Это Алгоритм 11.10 в книге Хайама, описанный в статье «Приближение логарифма матрицы к заданной точности» (препринт http://dx.doi.org/10.1137/S0895479899364015, при http://eprints.ma.man.ac.uk/318/).