一个R语言初学者的问题:
我想将一张RGB图像转换为灰度图像,并使用image()函数显示/绘制它。
library(EBImage)
orig = readImage("c:/test/b/s2.png")
gray = orig
colorMode(gray) = Grayscale
display(gray) #works
image(gray) #Error 'z' should be a matrix
使用colorMode(gray) = 灰度转换的图像似乎与图像函数不兼容。在R的EBImage中,灰度图像是否具有多个通道?
然后我手动进行了转换,并能够对其调用image()。
r = channel(orig,"r")
g = channel(orig,"g")
b = channel(orig,"b")
gray1 = 0.21*r+0.71*g+0.07*b
display(gray1)
image(gray1) #works
然而,两幅灰度图像的强度略有不同。在EBImage中有没有将RGB转换为单通道灰度的方法?
编辑 回答为什么使用EBImage:
该软件包提供了一些图像处理功能。例如,我可以使用更多的EBImage命令轻松地显示扫描测试条(img1)的强度图(img2):
blotgraph = resize(gblur(gray1,3),200,1)
plot(blotgraph, type="l")
我不知道如何在没有EBImage的情况下解决这种类型的任务。
image(gray)
而不是image(grey)
? - Scott RitchieEBImage
?使用标准的base
和graphics
软件包工具将图像对象转换为灰度并不是一件大事。 - Carl Witthoft