11

以下の行に示すように、ラスター関数を使用しています。私の最後の行は、いくつかの出力を生成します。その出力には、という行がありますdimensions : 240, 320, 76800 (nrow, ncol, ncell)。その画像を再印刷したいのですが、最初の 200 行と最初の 300 列だけと言います。どうやってやるの?下の最後から 2 番目の行は、イメージ全体をプロットします

f <- "pictures/image1-1421787394.jpeg"
f
r <- raster(f)
plot(r);
r

=============================アップデート1

png(filename = '~/x.png');par(mar=rep(0, 4), xpd = TRUE, oma=rep(0, 4),bty='n') ; plot(r,xlim=c(0,200),ylim=c(0,200),legend=FALSE,axes=FALSE); dev.off()トリミングした画像を保存しました。凡例と軸とブラック ボックスを取り除くことができました。しかし問題は、保存された画像にはトリミングされた部分よりもはるかに多くの部分が含まれていることです。たとえば、画像の周りの白い部分です。オリジナルのトリミングされた部分のみを保存したい (画像サイズは 200*200 ピクセルのまま)。その方法を教えてください。

さらに、上記のトリミングされた部分に対応する赤い正方形を元の画像に追加するにはどうすればよいですか? つまり、元の画像の上に赤い正方形 (エッジのみ) を取得し、これ (元の画像 + 正方形) を新しい画像として保存します。

どうすればそれができますか?

update2++++++++++++++++++++++++++++++++++++++++++++++++++

白い背景の意味を示すために繰り返し可能な例を追加する

下の最後の行は、トリミングされた画像をプロットします。xlim と ylim が 100 であるため、その画像を 100*100 にしたいのですが、下の例に示すように白い背景が表示されます。(背景は見えません。ただし、マシンでコードを実行して画像を開くと、背景が表示されます)

library(raster)
r <- raster(nrow=240, ncol=320)
values(r) <- 1:ncell(r)
plot(r)
plot(r,xlim=c(0,100),ylim=c(0,100),legend=FALSE,axes=FALSE,frame.plot=F)

ここに画像の説明を入力

4

2 に答える 2

5

xlimとを設定することでそれを行うことができますylim

plot(r,xlim=c(0,299),ylim=c(0,199))

[更新]白い背景を取り除くには、useRaster=Fパラメーターを試すことができます:

plot(r,xlim=c(0,100),ylim=c(0,100),legend=FALSE,axes=FALSE,frame.plot=F,useRaster=F)
于 2015-01-20T21:56:23.520 に答える