【问题标题】:crop image, convert to black and white and sharpen it裁剪图像,转换为黑白并锐化它
【发布时间】:2015-08-05 01:18:32
【问题描述】:

我想取 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)

基于之前的question,我在下面写了将r1 转换为黑白的行。但是 plotRGB 函数失败:(。绘图函数有效,但它不返回黑白图像

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

========update1==========

如果有人感兴趣,

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

【问题讨论】:

  • plotRGB 不会失败。它适用于三层光栅,而不是单层

标签: r image image-processing colors raster


【解决方案1】:

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

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)))

您可以使用 reclassify 函数来获取 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()

【讨论】:

  • 我想将生成的黑白图像保存为 jpg 或 png。我怎样才能以相同的大小保存裁剪的图像。 (大小保持 50X50 像素,我没有得到图例以及 x 和 y 轴和轴名称/数字 - 我在运行 plot(twoclasses, col=gray(c(0,1))) 后得到它们。
  • 我添加了一个png书写示例
  • 谢谢,有什么理由将宽度和高度更改 10 倍?
  • 没有。只是展示了如果图像太小,如何调整大小。
  • 绘图(, interpolate=TRUE)
猜你喜欢
  • 2013-12-20
  • 2013-05-18
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 2011-11-29
相关资源
最近更新 更多