2015-05-22 86 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