【问题标题】:Color histogram for a JPEG/PNG pythonJPEG/PNG python 的颜色直方图
【发布时间】:2018-02-15 10:08:43
【问题描述】:

我试图通过计算颜色直方图来检测图像中的主色。这是图片:

这是我为计算直方图而编写的代码:

img = Image.open("./color/1.jpg")
width =  img.size[0]
height = img.size[1]
colors = img.getcolors(width*height)

问题是当我说print(colors)时,它会打印出大量的RGB值及其对应的计数。

[(588, (255, 255, 255)), (878, (254, 255, 255)), (581, (255, 254, 255)), (209, (254, 254, 255)), (238, (253, 254, 255)), (164, (254, 253, 255)), (380, (253, 253, 255)), (232, (252, 253, 255)), (255, (253, 252, 255)), (16, (252, 252, 255)), (253, (251, 252, 255)), (422, (252, 251, 255)), (14, (251, 251, 255)), (296, (250, 251, 255)), (1515, (251, 250, 255)), (22, (250, 250, 255)), (91, (249, 250, 255)), (2, (247, 250, 255)), (88, (250, 249, 255)), (21, (249, 249, 255)), (1, (246, 249, 255)), (52, (249, 248, 255)), (90, (248, 248, 255)), (5, (245, 248, 255)), (1, (249, 247, 255)), (73, (248, 247, 255)), (245, (247, 247, 255)), (1, (248, 246, 255)), (106, (246, 246, 255)), (3, (242, 246, 255)), (3, (247, 245, 255)), (95, (245, 245, 247)), (39, (244, 245, 247)), (2, (246, 244, 255)),...

在我看来,JPEG 压缩是原因,但我不知道确切的原因。有人可以帮我计算这种情况下的直方图吗?

【问题讨论】:

    标签: python image-processing computer-vision python-imaging-library


    【解决方案1】:

    24 bpp 图像的颜色直方图最多有 16777216 个条目(其中大部分的频率为零)。

    我认为将其用于本质上是灰度(甚至是准二进制)的图像不是一个好主意。


    更新:

    要查找彩色图像中的主色,您可以尝试 k-means 方法,其中 k 是您要查找的颜色数。无需使用中间直方图。

    【讨论】:

    • 你能详细说明你的答案吗?当图像中只有两种颜色时,为什么我有这么多 RGB 值?
    • @user1274878:您的图像并非完全无色,当然也包含中间灰度。
    • 您能否在这种情况下提出解决方案。
    • @user1274878:转换为灰度
    • 好吧,其他图像可以有各种颜色,那么如何转换为灰度帮助。我上面显示的图像只是一个例子。
    猜你喜欢
    • 2014-02-15
    • 2017-06-29
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    相关资源
    最近更新 更多