从R中的图像提取Web安全颜色

cld4siwp  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(107)

我有一组图像。对于每个图像,我需要提取所谓的“网络安全颜色”的强度作为输出,我需要一个 Dataframe ,其中每行是一个图像,每列是一种颜色。
以下是我如何获得安全颜色

library(rvest)
library(dplyr)

colors = read_html("https://en.wikipedia.org/wiki/Web_colors#Color_table") %>% 
  html_nodes("h3+ .wikitable td") %>% 
  html_text() %>% 
  trimws()

下面是一个图像示例:

library(magick)
im = image_read("https://farm4.staticflickr.com/3579/3370591414_f321bd33ff_z.jpg")

我可以把它转换成不同数量的颜色,就像这样:

im %>%
  image_quantize(max=12)

但由于我需要比较图像,我希望每个图像都显示在相同的调色板(我选择了网络安全调色板)。

nlejzf6q

nlejzf6q1#

所以,最后我得到了这个。和我想要的不完全一样,但是很有效。

# recolor image 
  
  image_id = im
  
  num_vector = as.numeric(img_vector)*255
  num_vector = round(num_vector / int) * int
  
  #loop for pixels
  for(i in 1:90){
    
    for(j in 1:120){
      
      pixel = num_vector[i,j,] 
      whichcolor = which(tmp$rgb == paste0(pixel, collapse = "|"))
      color = tmp$color_id[whichcolor]
      result = rbind(result, data.frame(image_id, i, j, color))
      
    }
    
  }

相关问题