2015-05-22 85 views
1

我想将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 ==========

如果有兴趣的人,

图像的颜色可以很容易地代替“twoclasses”使用“1-twoclasses”的形象和情节的功能互换下面

+0

plotRGB不会失败。它意味着三层栅格,而不是单层 – RobertH

回答

2

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

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() 
+0

我想将生成的黑白图像保存为jpg或png。我怎样才能保存裁剪图像完全相同的大小。 (大小仍然是50X50像素,我没有得到传说和x和y轴和轴名称/数字 - 我得到他们后,我运行情节(双胞胎,col =灰色(c(0,1)))))。 – user2543622

+0

我已经添加了一个png的书写示例 – RobertH

+0

谢谢,任何改变宽度和高度10倍的原因? – user2543622