形・動き

Docker でmeshlabserver を使おうと思ったらcannot connect to X server とエラーが出る

Docker で仮想環境っぽいところだったり、サーバーなどでGUI、グラフィック系のドライバーがなさそうなところでmeshlab とかそういうのを実行すると、上記のエラーがでる。 wkhtmltopdfをUbuntuで使うためのメモ | Network Project 5 を参考に、xvfb-run を…

Python3 でcv2 を使う

こちらを参考にインストールする。 これとか。

手動で細胞の動きを追跡したい

細胞でもなんでもいいが、視野内の物体の動きを軌跡として取得したい。 最近流行りのディープラーニングでは下調べが足りないがいろいろあるっぽい。しかし、これらの手法を使うにしても自前で開発するにしても、正解データと比較して性能評価が必要である。…

勾配法による最適化

ある関数があって、最小化もしくは最大化したい。これらは正負を入れ替えればよいでの最小化を考える。 いま、適当に という関数があったとする。これの最小値とそのときのの組を求めたい。 2変数なので3次元に図示するとこんな感じである。最小値はひとつ定…

MeshLab を使って曲率を取得するのをバッチ処理して自動化する

3次元物体の曲率を以前やっていたのだが、自前のスクリプトに重大なミスが発覚したので、プログラミング力の高い人のプログラムから借用することを考える。 離散的な3D オブジェクトから、平均曲率とガウス曲率を計算したいが、意外とない。 と思ったらMeshL…

Python でコマンドライン引数、標準入力を受け取る

結論から言えばsys.argv を使う。 http://www.yukun.info/blog/2008/07/python-command-line-arguments.html 【python】sys.argv で引数をとる - metabo346の日記 コマンドライン引数入力できるPythonプログラムをつくる - 剥いだ布団とメモランダム.old Pyt…

ボクセルデータから形を構成する

蛍光イメージング動画があって、そこから細胞の3次元の形を再構成したい。 手順としては、 蛍光イメージの取得:他力本願 2Dでのセグメンテーション:他力本願、大津法 セグメンテーションされた領域の抽出:openCV セグメンテーションされた領域内で欠けて…

指数分布族

変数, パラメータ があるとき、 と表すことができる場合は、指数分布族という。ここで、exp やlog で無理やりカッコ内に指数法則を使って変換してやれば、各々の式は同じことを意味している。 ここで、 :十分統計量 sufficient statistics :natural parame…

球面調和関数の回転

球面調和関数をRでやったりPythonでやったりしていたのだが、球面調和関数展開して係数をもっているときに、物体が回転してしまうとルジャンドル関数が回転してしまうので、係数も回転に応じて適当に変換しないといけない。 これはたいてい、回転後のパラメ…

ガウス混合分布と曲率等高線を用いたセグメンテーション

読んだ。 Accurate Automatic Detection of Densely Distributed Cell Nuclei in 3D Space. PLoS Comput Biol. 2016 Jun 6;12(6):e1004970. プレスリリース 線虫の細胞の3D(4Dもいけるけど)画像のなかで、細胞がくっついているように見えるのもがうまくセグ…

球面調和関数をR でやる

球面調和関数をrPython でやっていたが、R だけで完結するほうが、rPython に投げてやりとりするより圧倒的に高速かつ安定なので、頑張ってR でやった。 ゴールとしては、 となる係数 を求めることだが、これはルジャンドル陪関数が直交するという性質を利用…

離散型物体データの球面調和関数展開

球面調和関数を使って.obj データを級数展開してくれるやつを後輩が書いてくれたのでやってみる。 例えばこれ(J Med Syst. 2014 May;38(5):20.)では、病気の肝臓と健康な肝臓をCT画像から構成して、球面調和関数による比較分類を行っている。 肝硬変が進んだ…

球面調和関数をrPython でやる

球面調和関数をやりたいがRではいいものがないのでPythonでやった結果をrPython を使ってRでゴリ押し計算するやり方。R を投げ捨ててPython に移行したかったが、結局R でやっちゃう。 rPython について知りたければ下にスクロール。 球面上の離散的な分布を…

球面上に均等な点を配置したい

球面上に均一な点を配置したい。約N個ならばこんな感じでやれるが、厳密にN 個おきたい。 実装が簡単なこれをやってみる。 そもそも、なぜ均一な点を球面上に配置したいかというと、基準点集合として扱えるからである。計算機では3次元データは離散的に持っ…

高次元での回転と疎行列

3次元物体を回転させたい。 2次元であれば回転行列は回転角を用いて と書ける。 高次元での回転ならば、正方対角行列(対角成分は1)について、(i, i), (i, j), (j, i), (j, j) 成分をひらすら上ので置換していけば、ある軸での回転を表す。 特に3次元では、x…

rmarkdown とknitr による文書作成

markdown 形式のrmarkdown とknitr を使って、授業資料の作成および解析結果の報告、宿題の提出などやっている。 HTML にすることでrgl の3D プロットなども出せるので、3D データを扱っているときにもよさげ。 真面目にやるならpandoc をインストールしてre…

3次元空間の補間 kriging

3次元空間の補間 interpolation をしたい。 空間統計学やGIS ではkriging と呼ばれる手法を用いている。 interpolation 自体はakima, kriging はpracma, kriging パッケージでできる。 pracma のkriging は、補間して推定したい点をひとつ入れれば、それに対…

Ricci flow

読んでる。Comput Vis Image Underst. 2013 Sep 1;117(9):1107-1118. Ricci flow という、Willmore flow とはまた違う条件で微分幾何学的物体変換を行う。 その前に下準備。 以前やった(離散)ガウス曲率は、1-ring下の三角形の角度と、と呼ばれる傘の面積で…

3次元オブジェクトをグラフにしてみる

平均曲率を用いて、3次元オブジェクトの表面を色付けした。 凹んでいるところは赤、出っ張っているところは緑になっている。 いま、同じ色でひと続きになっている領域を仲間分けして、なおかつ、隣り合う領域がどうなっているかを調べたい。 ある頂点と、そ…

方向ベクトルと平面の内分点

とある3D オブジェクトであるうさぎを貫くベクトルがあるとする。 ベクトルは極座標表示なので、中心からある程度伸ばして、そしてxyz 座標に変換する。 うさぎ自体はmesh3d オブジェクトで、もともとは頂点オブジェクト bun.v, エッジオブジェクト bun.f か…

球状の物体をメルカトル図法で2次元にする

物体をいじって球にしている。いま、球になった物体があるとして、これを2次元平面に展開して眺めたい。 地球儀が世界地図になるメルカトル図法みたいな感じ。 もとのうさぎは、各頂点の(離散)ガウス曲率にしたがって色付けしてある。正なら赤、0近くは灰色…

Eigen で行列式

体積と表面積の計算をRではなくcpp のままやれば速いということで、Eigen の協力をあおぐわけだが、Eigen の行列式は使うのが少し手間が必要で、Eigen/LUもinclude する必要がある。 matrix.determinant() で求められる。

物体の体積と表面積

物体の体積と表面積を計算したい。 三角メッシュ化されていれば、表面の三角形を足せば表面積はどうにかなる。 問題は体積。 The GNU Triangulated Surface Library(GTS)というもので計算できるっぽい。 sudo apt-get install libgts-dev Python でも使える…

四元数の演算

四元数の内積が欲しかったのでメモ。 四元数は2つの虚数単位, , (), と4つの実数, , , を用いて と書ける。これを実数部分(スカラー部)と虚部(ベクトル部)に分けて とも書く。 いま、ふたつの四元数, について、積は となる。 計算して確かめる。三角形の面…

曲面上のガウス曲率

普通に三角形を構成する頂点のガウス曲率の平均で三角メッシュのガウス曲率を計算した。 平均曲率よりも曲面上の凹凸をより細かく表現できているっぽい。というのも平均曲率よりも自由度が高いのでそうなのだろう。 tapply を使うよりmatrix にしてcolMean …

Kalman filter を用いてparticle tracking

読んだ。BMC Cell Biology201011:24 細胞の移動追跡を自動化してやってくれるソフトウェアTime Lapse Analyserの話。 マニュアルでやると細胞全体はもちろんチェックできないし、代表的な20細胞を選んでtracking してもらったら軒並みAMD (average mean dist…

離散曲面上のガウス曲率

3次元メッシュ上の点のガウス曲率を求める。 これとかこれ (PDF)とかに載っている。 あるvertex の周辺に の点がある。これはよく1-ring と書かれている。 結論から書くと、青で示された面積, で囲まれる三角形のの角度を用いて で定められる。曲面について…

四元数とベクトルとメッシュと面積と

3次元物体をあつかっている。 3次元座標を四元数で扱うと回転や行列計算などが簡単らしい。 いま、頂点が三角メッシュ化されて表面が形成されている.obj のうさぎがいるとする。 いま、表面の各三角形の面積の合計が、四元数と疎行列を用いてこんな感じで計…