単色の A4 用紙が 100 枚あり、さまざまな形や図形 (2D) にカットされ、スキャンされ、画像ファイルとして保存され、領域の昇順に並べ替える必要があるとします。
図形の面積を見つけて配置する効果的な方法はありますか?
すべての写真が同じサイズで、すべての形が同じ色である場合 (質問を誤解していなければ、このような状況です)、平均色値を計算できます。
計算された色が図形の色に近づくほど、画像上の形状は大きくなります。
いくつかのコード:
private Color GetAverageImageColor(Image img)
{
double[] rgb = new double[3];
Color col;
Bitmap bmp = new Bitmap(img);
for(int y = 0; y < bmp.Size.Height; y++)
{
for(int x = 0; x < bmp.Size.Width; x++)
{
col = bmp.GetPixel(x, y);
rgb[0] += col.R;
rgb[1] += col.G;
rgb[2] += col.B;
}
}
for (int i = 0; i < 3; i++)
{
rgb[i] /= (bmp.Size.Height * bmp.Size.Width);
rgb[i] = Math.Round(rgb[i]);
}
return Color.FromArgb((int) rgb[0], (int) rgb[1], (int) rgb[2]);
}