从图像中提取最常见的颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从图像中提取最常见的颜色相关的知识,希望对你有一定的参考价值。

Takes an image (path or url) and extracts the 7 most common colors and returns their hex values.
  1. def extract_colors(src)
  2. image = Magick::ImageList.new(src)
  3. colors = []
  4. q = image.quantize(7, Magick::RGBColorspace)
  5. palette = q.color_histogram.sort {|a, b| b[1] <=> a[1]}
  6.  
  7. (0..6).each do |i|
  8. c = palette[i].to_s.split(',').map {|x| x[/d+/]}
  9. c.pop
  10. c[0], c[1], c[2] = [c[0], c[1], c[2]].map { |s|
  11. s = s.to_i
  12. if s / 255 > 0 # not all ImageMagicks are created equal....
  13. s = s / 255
  14. end
  15. s = s.to_s(16)
  16. if s.size == 1
  17. '0' + s
  18. else
  19. s
  20. end
  21. }
  22. colors << '#' + c.join('')
  23. end
  24.  
  25. return colors
  26. end

以上是关于从图像中提取最常见的颜色的主要内容,如果未能解决你的问题,请参考以下文章

图像中颜色的二值化

获取图像最常见的颜色

使用 cvtColor 转换单个 BGR 颜色并使用结果从图像中提取该颜色

Python - 在图像中查找主要/最常见的颜色

如何使用 C# 中的代码进行颜色提取?

如何从彩色图像中提取和统计相似颜色点的数量?