将RGB RasterBrick转换为灰度

时间:2016-11-30 10:31:08

标签: r tiff raster

我有一个包含RGB地图的RasterBrick:

class       : RasterBrick 
dimensions  : 2400, 4200, 10080000, 3  (nrow, ncol, ncell, nlayers)
resolution  : 100, 100  (x, y)
extent      : 480000, 9e+05, 62000, 302000  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +no_defs 
data source : /Users/mnowak/Dropbox (sotomo)/sotomo_projekte/03 Umfragen/99_Werkzeuge/02_R/GIS/karten/2012/swisstopo_100.tif 
names       : swisstopo_100.1, swisstopo_100.2, swisstopo_100.3 
min values  :           20.68,           26.00,           35.00 
max values  :             255,             255,             255 

我想使用R。

转换为灰度

是否有人知道有哪些功能可以将RGB砖转换为灰度?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

现在我找到了一种方法:

library(tmap)
gray_raster <- ( colour_raster$colour_raster.1 + colour_raster$colour_raster.2 + colour_raster$colour_raster.3 ) / 3

colors <- gray.colors(255, start = 0.3, end = 0.9, gamma = 2.2, alpha = NULL)
gray_raster <- brick(gray_raster)
tm_shape(gray_raster) + tm_raster(palette = colors, auto.palette.mapping = F, n = 255, legend.show = F)

您可以构建三个色带的平均值,然后使用包含255种颜色的灰色配色方案进行绘制。