管理人

開発環境

VirtualBoxのホストキーを変更する

家ではErgodoxというキーボードを使用しているのですが、VirtualBoxのデフォルトホストキーである右Ctrlキーが存在しなくてハマったので、ホストキーの変更方法のメモです。環境は以下です。 Windows 10 Virt...
2019.01.07
プログラミング

OpenCVのcv::viz::writeCloudがis_block_type_valid(header->_block_use)とか_CrtlsValidHeapPointer(block)で落ちる

Visual Studio 2017でC++を書いて実行したら何やらエラーで落ちてしまいました。どうにもOpenCVの関数であるcv::viz::writeCloudを呼び出したときに落ちてるらしいことはわかったものの、解決するまでちょっと...
2018.12.02
プログラミング

【OpenCV 3.4】SIFTを使おうとするとError: The function/feature is not implementedと出力された

今までOpenCV 3.4.0を使用していたのですが、最近OpenCV 3.4.3にバージョンアップしました。バージョンアップ後にSIFTを使おうとするとちょっとハマったのでメモです。 現象 SIFTを使いたかったので、OpenCVのo...
2018.12.02
プログラミング

Visual C++でM_PI(円周率)を使う

Visual C++で円周率の定義M_PIなどを使う場合、gccなどと同じ風に使おうとするとM_PIが見つからないと怒られてしまいます。毎回Visual C++の場合どうやって書くんだっけなーとググって解決しているので、対応方法をまとめてお...
2018.12.02
画像処理

多視点三角測量(Multi view triangulation)のアルゴリズム

最近知ったのですが、OpenCVにもいつの間にか多視点三角測量(Multi view triangulation)が実装されていたんですね。 ということで今回は、OpenCVのcv::sfm::triangulatePointsでも使...
2019.07.28
開発環境

pip install –upgrade pipでpipのバージョンを上げるとImportError: cannot import name mainで動かなくなった話

aptでpipをインストールした後にpipのバージョンアップを試みると、pipが動かなくなってしまったのでその対策をまとめます。 現象 WSL (Windows Subsysmte for Linux)、つまりUbuntu 16.04で...
2018.12.02
画像処理

カメラ座標系から世界座標系への変換 ~外部パラメータの逆変換~

外部パラメータは、世界座標系からカメラ座標系へ変換する行列でした。今回は、この外部パラメータの逆変換、すなわちカメラ座標系から世界座標系への変換を考えてみます。 世界座標系からカメラ座標系への変換 まずは復習ですが、外部パラメータを使っ...
2018.12.02
便利ツール

scrapbox-converterの使い方 ~EvernoteからScrapboxへの移行~

EvernoteからScrapboxに移行するときに、scrapbox-converterというツールを使えば簡単に移行できるので、その使い方をまとめておきます。 今回は、Windows10のWindows Subsystem for L...
2019.10.14
linux

linuxで再帰的に特定の拡張子のファイルのみ削除

特定のディレクトリ内の、指定した拡張子のファイルを再帰的に削除するコマンドをメモとして残しておきます。 基本コマンド # 例としてディレクトリ内のテキストファイルを再帰的に削除するコマンド $ find ディレクトリパス -name "*....
2019.07.28
画像処理

画像座標系からカメラ座標系への変換

画像座標点をカメラ座標点に変換することを考えてみます。 タイトル詐欺で申し訳ないですが、結論から言うと画像座標点をカメラ座標点への変換はできません。できるのはカメラ座標系原点からカメラ座標点方向へのベクトルを計算することだけです。まぁ、2...
2018.12.02
Android

The Android Gradle plugin supports only Kotlin Gradle plugin version 1.2.51 and higher ~Kotlin Gradle pluginのバージョンが古いと怒られた話~

エラー 久しぶりにAndroid Studioを起動して、促されるままに諸々バージョンアップしたら、↓↓のように怒られて作ってたアプリのbuildが失敗するようになってしまいました。そのうちまた出会いそうな予感がするので、対応メモを残してお...
2018.12.23
プログラミング

Ceres Solverのビルド on Windows10 + Visual Studio 2017

Ceres SolverはGoogle謹製の非線形最小二乗問題のソルバーライブラリです。 とても便利に使わせてもらってるのですが、毎回ビルドに躓くので、ビルド手順をメモっておきます。今回はCXSparseもSuiteSparseもすべて使...
2018.12.02
プログラミング

OpenCVのfindEssentialMatでの内部パラメータの用途

5-point algorithm (5点アルゴリズム)を使いたくて、OpenCVに確か実装されてたよなーって思って調べてみると、なぜか関数の入力に内部パラメータが必要とされていました。 OpenCVの5-point algorithmはこ...
2019.07.28
開発環境

個人的おすすめVisual Studio拡張機能

WindowsでC/C++の開発をするときはVisual Studio 2017を使っているのですが、OS再インストールしたりPC新調するたびにどんな拡張機能入れてたか忘れて地味に困るので、記事に残しておくことにしました。 ログの出力に色...
2018.12.02
画像処理

SfMのOSS:Bundlerを動かしてみる in Windows 10 (動きませんでした)

最初に結論を述べておくと、Windows 10でBundlerは動きませんでした。ごめんなさい。 動かないまま力尽きたものの、結構頑張って動かそうとしたので、その軌跡をまとめました。 SfMのOSSであるBundle...
2018.12.02
プログラミング

C言語のフレキシブル配列メンバ(flexible array member)、通称struct hack

PHPの内部実装がC言語なのは周知の事実かと思いますが、最近仕事でPHP7の内部実装をみる機会がありました。 そこで学んだC言語のflexible array member、通称struct hackというテクニックがなかなか面白かったの...
2018.12.02
プログラミング

JavaのListIteratorのnext()とprevious()が同じ値を指す話

最近ListIteratorでハマったのでちょっと忘れないようメモです。 ハマったのはこんなシチュエーションです。 import java.util.LinkedList; import java.util.ListIterator; p...
2019.10.14
画像処理

Bundlerのアルゴリズムを追ってみる 特徴点マッチング編 その3

前回や前々回は、2枚の画像ペアから特徴点の誤対応を除去する方法について説明しました。 この記事では、2枚といわずすべての画像を使って誤対応を除去する方法について説明します。 特徴点追跡による誤対応の除去 まず、各画像間の各特徴点マ...
2018.12.02
画像処理

Bundlerのアルゴリズムを追ってみる 特徴点マッチング編 その2

前回は、Bundlerで使われている特徴点マッチングと、特徴点空間上の距離を使った誤対応の除去について説明しました。 この記事では、特徴点空間上の距離を使った誤対応除去の次に行う、エピポーラ幾何を使った誤対応の除去について説明します。...
2018.12.02
画像処理

Bundlerのアルゴリズムを追ってみる 特徴点マッチング編 その1

Structure from Motion(SfM)のオープンソース、Bundlerのアルゴリズムを追ってみます。 今回は、特徴点マッチングと、特徴点空間上の距離を使った誤対応の除去について解説してみます。 特徴点マッチング Bu...
2018.12.02