裁剪图像,转换为黑白图像并锐化

crop image, convert to black and white and sharpen it

我想拍摄x,将其转换成黑白图像。然后我想将所有低于 100 的像素转换为 0,并将所有高于 100 的像素转换为 255。我想获得更清晰的图像,其中背景为白色,图像中的对象为黑色。然后在我的硬盘上存储新的 x(黑白清晰图像)。我该怎么做?

library(raster)
r1 <- brick(system.file("external/rlogo.grd", package="raster"))
x <- crop(r1, extent(0,50,0,50))
plotRGB(x)

基于之前的 ,我写了下面几行将 r1 转换为黑白。但是 plotRGB 函数失败了 :(。Plot 函数有效,但它没有 return 我是黑白图像

flat <- sum(x * c(0.2989, 0.5870, 0.1140))
plotRGB(flat)
flat
plot(flat)

========更新1==========

如果有人感兴趣,

在下面的图像和绘图函数中使用“1-twoclasses”代替 "twoclasses" 可以轻松交换图像颜色

要真正看到灰色,您需要提供这些颜色。

library(raster)
r1 <- brick(system.file("external/rlogo.grd", package="raster"))
x <- crop(r1, extent(0,50,0,50))
flat <- sum(x * c(0.2989, 0.5870, 0.1140))
plot(flat, col=gray(seq(0,1,0.1)))

您可以使用重新分类函数获取 0 或 255 的值,但在这种情况下,使用 1 和 2 似乎更明智

twoclasses <- cut(flat, c(0,100,255))
plot(twoclasses, col=gray(c(0,1)))

要写入磁盘,您可以执行以下操作:

png(width=ncol(twoclasses)*10, height=nrow(twoclasses)*10)
par(mai=c(0,0,0,0))
image(twoclasses, col=gray(c(0,1)))
dev.off()