-2

次のようなものです:

public Color colorMoreTimesRepeated()
{    


}

さまざまな色を数えて、何度も繰り返される色を返す変数を作成する方法がわかりません。

アイデアは、画像のすべての色を数え、より多く繰り返される色を与えることです。私は* 2の旅をforで使用してみました.anycolorが繰り返されると、カウントが始まり、最後にさらに繰り返します。

   *for(int i=0;i< high;i++){
       for(int j=0;j<wide;j++){*
4

1 に答える 1

0

あなたの質問から、特定の画像で最大数のピクセルを埋めている色を特定したいことがわかりました。

私が正しければ、次の方法を使用できます。

private static Color getColorOccuringMaxTimesInImage(File imageFile) throws IOException
{
    BufferedImage image = ImageIO.read(imageFile);
    int width = image.getWidth();
    int height = image.getHeight();

    Map<Integer, Integer> colors = new HashMap<Integer, Integer>();

    int maxCount = 0;
    Integer maxColor = 0;

    for (int x = 0; x < width; x++)
    {
        for (int y = 0; y < height; y++)
        {
            Integer color = image.getRGB(x, y);
            Integer count = colors.get(color);
            if (count == null)
                count = 0;

            Integer next = count + 1;
            colors.put(color, next);

            if (next > maxCount)
            {
                maxCount = next;
                maxColor = color;
            }
        }
    }

    return new Color(maxColor.intValue());
}
于 2013-05-06T09:05:28.753 に答える