R plotRGB功能在删除值后的图片颜色差异

时间:2018-01-18 21:52:52

标签: r r-raster

我有三个png'并将它们绘制为RGB如下:

TCI = function(channel1,channel2,channel3){
r = raster::raster(channel1)
g = raster::raster(channel2)
b = raster::raster(channel3)
RGB_brick= raster::brick(r,g,b)
RGB_brick[RGB_brick<1] = NA
graphics::par(bg=NA,mar=c(0,0,0,0),oma=c(0,0,0,0))
raster::plotRGB(RGB_brick,r=1,g=2,b=3,stretch="lin",bgalpha=0)

}

输出如下:

enter image description here

如果我取出RGB_brick[RGB_brick<1] = NA,结果如下:

enter image description here

我做了RGB_brick[RGB_brick<1] = NA,因为我想删除黑色背景。现在问题是两个图像之间存在轻微的色差。我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:0)

你的问题不明确。除“黑色背景”外,您的第二张图像是“所需的输出”。但这不是你的第一个例子所显示的吗?

请使用我们都有权访问的数据重新提问。例如,

library(raster)
b <- brick(system.file("external/rlogo.grd", package="raster"))
plotRGB(b)

将小值更改为NA不会改变颜色

b[b<100] <- NA
plotRGB(b) 

除非您像stretch="lin"

那样拉伸值
plotRGB(b, stretch="lin")

为避免这种情况,您可以自己拉伸值,并使用plotRGB而不使用stretch参数。