0

いくつかの値を計算するために、コバリオグラム プロットを取得しようとしています。これは以前に行われた作業です。二相鋼のバンド構造の定量分析

2. ページを読むだけで、方法を理解するのに十分です。

次のように、このドキュメントの方法を説明するための画像があります。 コバリオグラム

作成者がプロットの例で画像を使用し、そのプロットを取得したことがわかります。

バイナリイメージとして使用しているイメージは次のとおりです。 マイイメージ

画像を使用してそのプロットを取得したいだけです。

コード:

setwd(".../Project/R/Workspace/Task1")
library("EBImage", lib.loc="~/R/win-library/3.2")
img <- readImage(".../Project/Beispielbilder/example.jpg")
display(img,  title='Image')
M <- img_ithr
plot(cov(M),xlim=c(0,1), ylim=c(0,300))

皆様、ご協力と時間をありがとうございました。

4

1 に答える 1

1

サンプルファイルと論文の説明に基づいて、次のことを思いつきました。

library("EBImage")

img <- readImage("https://i.stack.imgur.com/YMBQO.jpg")

## discard color channels by collapsing to grayscale, and binarize
bin <- channel(img, "gray") > .5

## function calculating the overlap between the original structure
## and the structure shifted by a vector v
C <- function(img, v) {
  sum(img & translate(img, v)) / prod(dim(img)[1:2]-v)
}

h <- 1:300

## horizontal
C_h <- sapply(h, function(h) C(bin, c(h, 0)))

## vertical
C_v <- sapply(h, function(h) C(bin, c(0, h)))

matplot(h, cbind(C_h, C_v), xlim = range(h), ylim = range(C_h, C_v),
         ylab = "C", col = c("red", "blue"), type = "l", lty = 1)

ここに画像の説明を入力

共分散は、2 つの垂直方向で別々に測定されます。ただし、論文のプロットで方向βがどのように考慮されているかはわかりません。

于 2016-11-15T15:12:09.393 に答える