Image 扫描(2D)图形的面积

Image 扫描(2D)图形的面积,image,photoshop,pixels,area,scanning,Image,Photoshop,Pixels,Area,Scanning,假设我有100张单色A4纸张,它们被切割成不同的形状和图形(2D),扫描,保存为图像文件,然后需要按面积升序排序 有没有一种有效的方法来找到图形的区域并排列它们?如果所有图片的大小和形状都相同,颜色也相同(如果我不理解你的问题,情况就是这样),你可以计算平均颜色值 计算出的颜色越接近人物的颜色,图像上的形状就越大 一些代码: private Color GetAverageImageColor(Image img) { double[] rgb = new double[

假设我有100张单色A4纸张,它们被切割成不同的形状和图形(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]);
    }
专用颜色GetAverageImageColor(图像img)
{
double[]rgb=新的double[3];
颜色颜色;
位图bmp=新位图(img);
对于(int y=0;y
是的,所有100张纸的大小和颜色都相同;看来你已经完全了解情况了。我认为你的解决方案可能有效,谢谢!这种捷径解决方案正是我所寻找的——优先级1是以有效的方式获得正确的顺序;为面积找到一个准确的值是次要的(但也会很好)。一旦我有机会尝试你的解决方案,我会尽快向你汇报(可能是在周末的某个时候)。