【问题标题】:How To Plot Histogram of an Image? [closed]如何绘制图像的直方图? [关闭]
【发布时间】:2012-03-31 13:47:38
【问题描述】:

如何绘制和显示图像的直方图?如果可以使用 Java Advance Imaging API 完成,请建议我如何执行此操作?

【问题讨论】:

    标签: java swing jai


    【解决方案1】:

    此链接提供了使用 Java Advanced Imaging API http://www.raditha.com/java/image/ 做您想做的事的教程。我个人使用标准图像 API 来执行此操作,从图像文件创建一个 BufferedImage,然后在每个像素上使用 getRGB()。从中您可以获得每个像素的单独的红色、绿色和蓝色值。您可以计算值的数量,0-255,将它们存储在一个数组中,就像直方图的 bin 一样。我将其用于内部处理并且不显示图表,所以很遗憾我无法帮助您进行显示部分。

    【讨论】:

    • 好的,但是请您发布您的代码,该代码显示如何获取直方图数据,例如如何使用 getRGB() 以及如何计数。像素?请发布您的代码部分。提前致谢
    • 您的图像需要作为 BufferedImage 读取。使用 'image.getRGB(x,y)' 您将获得像素值作为该像素的 int,这些可以通过 'Color pixel = new Color(image.getRGB(x,y)); 传递给 Color 类'。颜色类有方法 'getRed()' 、 'getGreen()' 和 'getBlue()' 。我使用三个数组,其中每个地址就像直方图的 bin,这些数组的大小为 256,因此您根据每种颜色的值递增索引,例如,如果您发现 pixel(0,0) red 的分量为 64你会将 redArray[64] 加一。
    • 这是我加载图像的方式。请为我提供下一步操作 [stackoverflow.com/questions/9981328/…
    • 该问题的代码使用了我没有经验的 Java Advanced Imaging API,因此我无法为您提供帮助。只需使用 2D 图形,使用流读取图像以构建 BufferedImage,使用嵌套的 for 循环遍历像素来获取颜色并像我在第一条评论中所说的那样记录它们。
    猜你喜欢
    • 1970-01-01
    • 2011-06-30
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 2015-08-26
    相关资源
    最近更新 更多