2016-12-12 2 views
0

주어진 그림을 구성하는 각 색상의 비율을 얻으려고합니다. 이 코드를 사용하여 RGB 매트릭스 얻을 : 나는 앞서 갈 수있는 올바른 방법이다 모르겠어요이 단계에서이미지 색상 조합을 사용하여 R

library(jpeg) 
img <- readJPEG("C:/Users/Pictures/img.jpg") 
dim(img) 
#145 371 3 
img<-img*255 
#this operation is necessary to obtain an RBG scale 

합니다.

Count RGB vector 

200614 (255,255,255) 

4758  (253,253,218) 

4312  (250,250,229) 

1821  (235,237,242) 

1776  (212,214,226) 

... 

을 한 후 나는 각 색상의 비율을 계산할 수 있습니다 : 어쨌든, 나는이 같은가 someting를 취득하고 싶습니다. 마지막으로 각 RGB 벡터에 레이블을 연결하려고합니다.

누구든지 나를 도와 줄 수 있습니까?

답변

3

쉽게 as.raster (당신이 255을 곱한 값을 확장 할 필요는 없습니다)로 값을 #RRGGBB하는 픽셀 어레이를 변환 한 후 table과 색상을 셀 수 있습니다. 헥스 색상 문자열의 개별 색상 구성 요소는 col2rgb에서 얻을 수 있습니다.

library(jpeg) 
img <- readJPEG("C:/Users/Pictures/img.jpg") 

# Convert the 3D array to a matrix of #rrggbb values 
img <- as.raster(img) 

# Create a count table 
tab <- table(img) 

# Convert to a data.frame 
tab <- data.frame(Color = names(tab), Count = as.integer(tab)) 

# Extract red/green/blue values 
RGB <- t(col2rgb(tab$Color)) 
tab <- cbind(tab, RGB) 

# Preview 
head(tab) 
+0

감사합니다. 발견 된 각 색상에 레이블을 붙이는데 도움이 될 수있는 이미 구현 된 기능이 있는지 알고 있습니까? 알맞은 수의 레이블을 얻기 위해 일부 RBG 벡터를 그룹화하는 것이 필요합니다. – dag

+0

이 레이블로 정확히 무엇을 의미하는지 명확하게 설명해 주시겠습니까? 'colors()'에 해당하는 색상 이름이 필요합니까? – aoles

+0

죄송합니다, 당신 말이 맞아요. 즉, 예를 들어 색상의 이름을 보여주는 탭에 다른 열을 추가하고 싶습니다. : 컬러는 적색, 녹색, 청색의 이름을 1 # 000000 11600 0 0 0 화이트 2 # 00C25F 1 0 194 95 검정 3 # 00C34B 81 0 195 75 옐로우 4 # 00C454 1 0 196 84 ... 5 # 카운트 00C45E 1 0 196 94 ... 6 # 00C764 1 0 199 100 ... 가능하다고 생각하십니까? 많은 Tnx – dag