I am Charmie

メモとログ

programming

python: natural sort for a list of strings

See this. The process is super simple. stack a set of strings into a list. define a function converts a string object to its corresponding int object. define a function runs through a list to extract numbers from strings. sort a list with …

PyTorch: at evaluation/test phase

I got a runtime error at evaluation phase of my simple siamese network as RuntimeError: cuda runtime error (2) : out of memory at the line of executing forward pass. Some comments on stackoverflow suggests to define x and y with volatile=T…

Python: set

setsPython 2.3で追加され,2.6で撤廃された. 2.6以降は組み込み型のsetを使う. listやnumpy.arrayを使っても似たようなことができそうだけど,集合は集合ということでsetを使った方が良い. [code lang="python"] import random if name == "main": # def…

Python: コールバック関数

関数の引数として呼ぶ関数をコールバック関数と呼ぶ. C, C++と違い,Pythonのコールバック関数を使うのは非常に簡単ということが分かった. ひとまず,コールバック関数をarithmetic.pyに保存. [code lang="python"] arithmetic.py def add(a, b): return …

AndroidでARアプリ

GPS情報を基にした簡単な可視化を行うアプリをフルスクラッチで作ろうと思っていたんだけど,SDKを使うのが楽っぽい. AR SDKの比較表を基に良さそうなのは以下のSDK DroidAR: Location-based, marker-basedの両方 (センサーベースがメイン) GPS, 磁気センサ…

Python: load a list of file names in a directory

There are two functions, os.listdir and glob.glob, for the purpose. os.listdir loads all the filenames in the specified directory. [code lang="python"] import os filelist = os.listdir('dirName/') [/code] glob.glob loads all the filenames i…

Python: mean of a matrix along a specified axis

[code lang="python"] import numpy generate a 10x3 matrix with random values M = numpy.random.random*1 mean along row resulting a 3x1 vector meanRow = M.mean(axis=0) mean along column resulting a 10x1 vector meanCol = M.mean(axis=1) [/code]…

Solver in Ceres Solver

Ceres Solver divides non-linear optimization algorithms into two major categories [1]: Trust region methods first choose a step size and then a step direction. Line search methods first choose a step direction and then a step size. This po…

debug with Qt Creator + CMake

use the following arguments:-DCMAKE_BUILD_TYPE=Debug

Boost Combination library

When we use Boost Combination library, input sequence should be sorted. Otherwise, the computed permutation/combination lack some of them.

Point Cloud Library (PCL)

Point Cloud Library (PCL)のインストールとセットアップ for Windows.1. PCLのインストールPCLのセットアップは2つの方法がある.プレビルド(あらかじめビルド)されたものをインストールするか,それとも自分でソースからコンパイルするか.プレビルド版は…

ファイルからテキストデータを取得

色んな方法がある.fgetl1行単位でファイルからテキスト情報を取得.line = fgetl(fid)得られるデータlineはstring.fgetlがファイルの終端まで来ると,line=-1となる.textscanブロック単位でファイルからテキスト情報を取得.InputText = textscan(fid, '%…

フォルダ名の変更

MatLabでフォルダ名を変更する.movefile(str1,str2);str1,2でそれぞれフォルダ(ファイル)名を指定すれば,指定したフォルダ(ファイル)の名前をstr1->str2と変更する.

ファイル名のパスとファイル名を分離

MatLabで文字列からファイル名とパスを分離する方法.[pathstr, name, ext, versn] = fileparts(filename)それぞれpathstr: ディレクトリ名name: ファイル名(拡張子は含まれない)ext: 拡張子(拡張子の前に.が含まれる)versn: バージョン例)>> filename='./te…

ofstream出力での小数点以下の出力桁指定

はまった。小数点以下の出力桁指定の方法。例)小数点以下の出力桁を6桁に指定。ofstream fout("out.txt");fout.setf(ios_base::fixed, ios_base::floatfield);fout.precision(6); // 小数点以下の出力桁を6桁に指定fout << 10 << " " << 0.123456789 << endl…

Load and Save 16bit image

My MatLab is R2009a. I don't guarantee that this info. is same as other versions.Suppose we have a 16bit image 'test.tif'. What we want to do is, first read the image and then save the image as 'res.tif'.Simply speaking, default imread and…

Camera Calibration Toolbox for MatLab pt.2

続き.今度はステレオカメラのキャリブレーション.前提: ステレオカメラで同じシーンを撮影している. 2台のカメラともcalib_guiで内部・外部パラメータ共にキャリブレーション済み.mainの実行>> stereo_gui各カメラの内部・外部パラメータのロード>> Load…

Camera Calibration Toolbox for MatLab

キャリブレーション用Toolboxのメモここからダウンロード.main関数の実行>> calib_gui選択肢が以下の二つ.3000x2000画素x9枚の画像で実行したらエラーになったので,後者を選択した.Standard(全ての画像をメモリに格納)Memory efficient(画像を一つずつ読…

boostで中央値

中央値を計算したくて試行錯誤.調べたら見つけた.Boost便利.The Statistical Accumulators Libraryを使えば良いみたい.

Boost C++ Library

Windows版インストーラは以下からダウンロードできる.http://www.boostpro.com/download今まで,ほぼCだけでやってきたけど,C++の機能を使い倒せれば便利だと痛感したので,これを気にちょっとずつ勉強していく.

Boost

最小経路探索をしなきゃいけなくて,このライブラリを使うように言われる.BoostというC++のライブラリ.この中のBoost.Graphというやつだけで良いみたいだけど,後学のためにちょっとマジメに調べる.詳しい説明はwebにたくさんあるから良いとして,インス…

05_texture_sampling_program

今回は,04で使用しなかったtextureについて.バーテックスシェーダは前回と同じで,フラグメントシェーダが変わっている.ひとまずC3E3f_texture.cgを載せる. struct C3E3f_Output { float4 color : COLOR; }; C3E3f_Output C3E3f_texture(float2 texCoord…

04_varying_parameter_program

今回は,varying parameterとやらの話.C2E1v_green,C3E1v_anyColorどちらのシェーダプログラムでも,バーテックス毎に異なるパラメータがあった.セマンティック変数のPOSITIONの事.これは,GPUが各position parameterを,プログラムによって処理されるバ…

03_uniform_parameter_program

今回は,uniform parameterとやらの話.C2E1v_greenは,バーテックスのカラーとして,常に緑色を返していた.異なる色を変えさせたい時にどうすれば良いかと言うと,パラメータとしてカラーを与えてあげればOK.今回のバーテックスシェーダ(C3E1v_anyColor)…

02_vertex_and_fragment_program

今回は,バーテックスシェーダとフラグメントシェーダの両方を使う(バーテックスシェーダは前回と同じもの).GLの方で行う処理の変更点は,01_vertex_programと違い,フラグメントシェーダの設定も行う必要があるぐらい.フラグメントシェーダ(C2E2f_passthr…

01_vertex_program pt.2

次に,シェーダでどんな事をしているか.今回のシェーダ(C2E1v_green.cg)は処理が単純過ぎるので,一般的な話から.Cg言語では,OpenGL側から受け取るデータは全て関数の引数として受け取る必要がある.関数が受け取る引数には2種類あって,ユニフォーム変数…

01_vertex_program pt.1

Cgをインストールする時に一緒に保存されるサンプルプログラムで,Cgの勉強.まずは,Cgを使う時のルールみたいなのを,最初のサンプルファイル(01_vertex_program)を参考にまとめてみる.このプログラムはバーテックスシェーダのみしか使用してないけど,そ…

Cgとは?

Cgとは?そもそもCgって何をするのかとか,そーゆー話をまとめようと思う.サンプルコードやwebで調べた上での自分なりの解釈だから,間違ってたらゴメンなさい.Cgはグラフィックスハードウェアを使ってレンダリングするオブジェクトのshape, appearance, m…

Cg Tutorial Examples

Cgの勉強を本格的にしなきゃという事で, Cg turorialのページに行くと, Cg Tutorial Examples Installerなるものを見つけた.後でインストールしてみる.

libtiff

libtiff.名前通り,TIFFを扱うためのライブラリ.Windoes用はこちら.Complete package, except sourcesからインストール用exeを落とせるから,おとなしくインストールexeを使うと楽.ふと気づいたんだけど,これだけ時間がかかって,画像の読み込みしか知…