2017-10-05 7 views
0

私は、イメージ処理解析のためにEBImageパッケージのR統計ソフトウェアを使用しています。 イメージのいくつかのフレームの合計を含む1つのフレームのイメージが必要です。これは「画像投影」と呼ばれています。手動で再生した後、私は希望の動作を得ますが、ループでそれをやりたいときは、黒い画像が得られます。これは、再現性の例です:あなたは0年代ではなくNA年代にあなたの結果行列zを初期化する必要がありますあなたの例の作品を作るために黒いイメージがEBImageのループを持つフレームの後

library("EBImage") 

# Load Nuclei System Image 
nuc <- readImage(system.file("images", "nuclei.tif", package="EBImage")) 

# Split Nuclei Image by Frame 
nuc1 <- nuc[,,1] 
nuc2 <- nuc[,,2] 
nuc3 <- nuc[,,3] 
nuc4 <- nuc[,,4] 

# Sum of Splited Frames to Single Frame 

## Method 1 manual: 
nucProjection <- nuc1 + nuc2 + nuc3 + nuc4 
display(nucProjection) 

## Method 2 auto: 
z <- matrix(data = NA , nrow = dim(nuc)[1], ncol = dim(nuc)[2]) 
for (i in 1:numberOfFrames(nuc)){ 
z <- z + nuc[,,i] 
} 
display(z) 
+0

これはプログラミング言語ですか、疑似コードですか? – Mohammad

+0

申し訳ありませんが、はじめに、私はRソフトウェアとプログラミング言語を使用してEBImageパッケージで画像解析を行っています – Archymedes

答えて

0

。 forループよりもクリーンで高速なアプローチは、フレームのリストにReduceを使用することです。

Reduce("+", getFrames(nuc)) 

プレーンマトリックスではなく、クラスImageのオブジェクトを返すという利点があります。

+0

パーフェクト、ゼロのみを含む行列を使用しています。非常に興味深いアプローチで、「減らす」機能。どうもありがとう – Archymedes

関連する問題