2015-03-31 106 views
1

我有一个RGB图像,任何单元格都是像“#FFFFFF”这样的特征值。 我想将这种格式转换为3D矩阵,并将其用于图像处理,不幸的是,我现在不会那么做。在R中将RGB十六进制转换为三维矩阵

+0

请检查'col2rgb'? – 2015-03-31 04:34:33

+0

感谢您的回答,但我想要做的rgb2col,不退出的命令 – 2015-03-31 09:03:45

+0

为什么你想'rgb2col'? – 2015-03-31 09:06:22

回答

1

让我们用颜色 “#8A2BE2”:

# Create a 4x4 matrix with the same color 
hex <- matrix(rep("#8A2BE2", 16), 4, 4) 
hex 
#  [,1]  [,2]  [,3]  [,4]  
# [1,] "#8A2BE2" "#8A2BE2" "#8A2BE2" "#8A2BE2" 
# [2,] "#8A2BE2" "#8A2BE2" "#8A2BE2" "#8A2BE2" 
# [3,] "#8A2BE2" "#8A2BE2" "#8A2BE2" "#8A2BE2" 
# [4,] "#8A2BE2" "#8A2BE2" "#8A2BE2" "#8A2BE2" 

rgbs <- col2rgb(hex) 
# First 5 columns 
#  [,1] [,2] [,3] [,4] [,5] 
# red 138 138 138 138 138 
# green 43 43 43 43 43 
# blue 226 226 226 226 226 

rgbs <- array(t(rgbs), c(4,4,3)) 
dim(rgbs) 
# we get a 4x4x3 array 
# [1] 4 4 3 

rgbs[1:2,1:2,] 
# First 2 lines and first 2 columns 
# , , 1 
# 
#  [,1] [,2] 
# [1,] 138 138 
# [2,] 138 138 
# 
# , , 2 
# 
#  [,1] [,2] 
# [1,] 43 43 
# [2,] 43 43 
# 
# , , 3 
# 
#  [,1] [,2] 
# [1,] 226 226 
# [2,] 226 226