我有三个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)
}
输出如下:
如果我取出RGB_brick[RGB_brick<1] = NA
,结果如下:
我做了RGB_brick[RGB_brick<1] = NA
,因为我想删除黑色背景。现在问题是两个图像之间存在轻微的色差。我怎么能解决这个问题?
答案 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参数。