2017-10-12 8 views
0

私はSequoia Parrotセンサーからキャプチャされた.tifイメージで作業しています。ラジオメトリック較正を行い、結果のイメージを同じフォーマット(.tif)でエクスポートしたいと思います。インポート、処理、編集、エクスポート.tifファイルR

イメージをラスターとして読み込んだ後、いくつかのアルゴリズムで処理し、最後に.tifファイルとして書き出しを試みますが、開くことはできません。結果のファイルは7 MBですが、イメージは表示できません。ここで

は私のスクリプトです:

setwd("/where the images are/") 
rlist=list.files(getwd(), pattern="TIF$", full.names=F) 
options(digits=20) 

for(i in rlist){ 
    data <- raster(i) 

meta <- exifr(i, recursive = FALSE, quiet = TRUE, exiftoolargs = NULL) 
SM <- meta$SensorModel 
SM <- strsplit(SM, ",")[[1]] 
A <- as.numeric(SM[1]) 
B <- as.numeric(SM[2]) 
C <- as.numeric(gsub("[^0-9\\.]", "", SM[3])) 

Ep <- meta$ExposureTime ## Epsilon 
f <- meta$FNumber ## Focus Number 
ys <- meta$ISO ##ISO 

I <- f^2*(data-B)/(A*Ep*ys+C) 
I <- flip(I,"x") 
I <- flip(I,"y") 
+0

私が使用する 'CALC()' '最初I'計算で:

は、私はより良い理解のために小さな変更を加えました。画像の例がなければ、問題を特定するのを手助けすることはできません。 –

答えて

0

はよくインデント元のスクリプトですか?サンプル画像では、すべてが正しく機能します。

library(raster) 
library(exifr) 

setwd("/where the images are/") 
rlist=list.files(getwd(), pattern="TIF$", full.names=F) 
options(digits=20) 

for(i in seq_along(rlist)){ # small change 

    data <- raster(rlist[i]) # small change 

    meta <- exifr(rlist[i], recursive = FALSE, quiet = TRUE, exiftoolargs = NULL) # small change 
    SM <- meta$SensorModel 
    SM <- strsplit(SM, ",")[[1]] 
    A <- as.numeric(SM[1]) 
    B <- as.numeric(SM[2]) 
    C <- as.numeric(gsub("[^0-9\\.]", "", SM[3])) 

    Ep <- meta$ExposureTime ## Epsilon 
    f <- meta$FNumber ## Focus Number 
    ys <- meta$ISO ##ISO 

    I <- calc(data,fun = function(x){f^2*(x-B)/(A*Ep*ys+C)}) # small change 
    I <- flip(I,"x") 
    I <- flip(I,"y") 
    print(plot(I)) 
} 

image

関連する問題