あなたが最初の穴や線を見つけ、それらを明確に役立つかもしれない画像Jのために書かれたエッジ検出のためのツールがあります。あなたはtresholding、見つかった線や穴を得るために助けることができるヒステリシスの設定で遊んで
http://imagejdocu.tudor.lu/doku.php?id=plugin:filter:edge_detection:start
でそれを見つけます。あなたの実際の写真を見ることなくこれが働く機会が多いかどうかを知ることは難しいですが、私の同僚はこのツールをFRAP画像に使用して良い結果を得ていました。私は、これらの画像に基づいてFRAP解析で回復を計算できるImageJツールをプログラミングしました。コードを見るときにあなた自身のアイデアを得るかもしれません(http://imagejdocu.tudor.lu/doku.php?id=plugin:analysis:frap_normalization:startを参照)
私があなたが画像で作業できると知っている唯一の方法は、生物工学システムに含まれているEBImage
を使用することです。パッケージRimage
は孤立しており、もはや維持されていません。
最短距離を見つけるには:線と穴の座標を取得したら、すべての点と線の間の距離を計算し、最小値をとるショットガンの方法に進むことができます。 Rでそのことについて、説明:次に
x <- -100:100
x2 <- seq(-70,-50,length.out=length(x)/4)
a.line <- list(x = x,
y = 4*x + 5)
a.hole <- list(
x = c(x2,rev(x2)),
y = c(200 + sqrt(100-(x2+60)^2),
rev(200 - sqrt(100-(x2+60)^2)))
)
plot(a.line,type='l')
lines(a.hole,col='red')
calc.distance <- function(line,hole){
mline <- matrix(unlist(line),ncol=2)
mhole <- matrix(unlist(hole),ncol=2)
id1 <- rep(1:nrow(mline),nrow(mhole))
id2 <- rep(1:nrow(mhole), each=nrow(mline))
min(
sqrt(
(mline[id1,1]-mhole[id2,1])^2 +
(mline[id1,2]-mhole[id2,2])^2
)
)
}
:
> calc.distance(a.line,a.hole)
[1] 95.51649
あなたがサークルとラインから次方程式を導出することにより、数学的に確認することができます。何千もの行と穴を記述する何百万ものポイントを持っていなければ、これは十分に速くなります。
私の頭の上から外れて、私はImageJと最初に行くだろう。私はそのツールの専門家ではありませんが、スポットを見つけてそれらを使ってうまくやっているようです。 –
これは、Bio7がこの作業に適している可能性があります。そこにあるBio7の教祖?プログラムは本当に何かを理解するのは難しいですね。) – Mikko