Как инвертировать цвета растрового изображения ggmap в R?

Я предполагаю, что в растровом пакете есть то, что я нужно... Я просто хочу инвертировать цвета в растровом изображении.

Фактический сценарий таков: я хочу инвертировать растровое изображение, возвращаемое вызовом ggmap:

 library(ggmap)
 ggmap(get_stamenmap(maptype = "toner"))

Карта обычного тонера

Я хочу инвертировать цвета, чтобы получить бело-черную версию карты Stamen Toner:

Инвертированная карта тонера


person dancow    schedule 08.09.2015    source источник


Ответы (1)


Это инвертирует объект raster, возвращенный get_stamenmap()

library("ggmap")
m <- get_stamenmap(maptype = "toner")

# invert colors in raster
invert <- function(x) rgb(t(255-col2rgb(x))/255)    
m_inv <- as.raster(apply(m, 2, invert))

# copy attributes from original object
class(m_inv) <- class(m)
attr(m_inv, "bb") <- attr(m, "bb")

ggmap(m_inv)

ggmap инвертирован

person rcs    schedule 08.09.2015