前回の記事の最後に書こうと思って忘れてた部分。前回同様Android StudioのC++サポート(JNI / Android NDK)でライブラリを使う時の話。 画像処理の中で行列を扱うときにEigenとかを使いたい時があると思うんだけど、そういうヘッダファイルだけで使えるライブラリを使うときのメモ。 Eigen 3.3.4を例にやってみるので他のを入れたいときはそこを置き換える。 プロジェクト内にライブラリをコピーして使うだけ。C直下とかにあるやつを使うのは、絶対パスを書いておけばすぐできるかと思ってたけど、CMakeの知識不足ですぐにはできなかった。もし見てる人がいたらやり方教えてくれたら喜びます。 直接ではないけどCMakeでAndroid向けのOpenCVを利用するを参考にしています。 新しく追加編 ライブラリ置き場の設定 ヘッダファイルのコピー CMakeListsの設定 CM
※ 2020-09-06: 「アライメントの問題(C++17以上かつEigenバージョン3.4以上)」を追加。 線形代数ライブラリ(行列演算や行列分解などを行うライブラリ)には、有名どころだとPythonではNumpyがあり、C++ではEigenがあります。Eigenは強力なライブラリですが、気をつけなければいけないところがいくつかあるのでまとめます。 Eigenの特徴 ヘッダーオンリーでテンプレートが多用されており、汎用性が高い Expression Template(式テンプレート)を用いた遅延評価で高速(不要な計算を自動で除外する) 自動でSIMDやループ展開が適用され高速 静的にサイズを指定した行列はヒープを一切使用しない 疎行列のサポートがある 密行列・疎行列それぞれ様々な行列分解アルゴリズムが実装されている 以上のように、非常に高速で強力なライブラリですが、高速性のトレードオフ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く