C# 将像素列表声明为带有附加变量的BLOB
作为一种爱好,我试图研究一种场景文本检测方法 我希望做如下工作:C# 将像素列表声明为带有附加变量的BLOB,c#,C#,作为一种爱好,我试图研究一种场景文本检测方法 我希望做如下工作: struct pixel1 { public int y1; public int x1; public Color color1; };
struct pixel1
{
public int y1;
public int x1;
public Color color1;
};
List<pixel1> blob1 = new List<pixel1>();//I failed to create blob1 list with variables.
List<blob1> listofblob1 = new List<blob1>();//declair list of blob which I failed to do.
private void runMethod1()
{
//I want to use it like it shows in below.
foreach (var blob1 in listofblob1)
{
blob1.DistanceToClosestBlob=getDistanceToNextblob(blob1, listofblob1);
blob1.size=blob1.Count;
blob1.centerxy=getcenterXY(blob1);
if(blob1.center.x<0||blob1.center.y<0){return;}
}
}
struct pixel1
{
公共int y1;
公共int x1;
公共颜色1;
};
List blob1=新列表()//我无法使用变量创建blob1列表。
List listofblob1=新列表()//我没能做到的那一点。
私有void runMethod1()
{
//我想像下面所示那样使用它。
foreach(listofblob1中的变量blob1)
{
blob1.DistanceToClosestBlob=getdistancetoextblob(blob1,listofblob1);
blob1.size=blob1.Count;
blob1.centerxy=getcenterXY(blob1);
if(blob1.center.x如果您将其更改为类,那么您可以做更多的事情来创建一个不可变结构
不可变结构引用位于此处:
需要这样做:
struct Pixel1
{
public int X1 { get; }
public int Y1 { get; }
public Color Color1 { get; }
public Pixel1(int x, int y, Color c)
{
X1 = x;
Y1 = y;
Color1 = c;
}
};
但是把它变成一个类。如果你把它变成一个类,那么你可以做更多的事情来创建一个不可变的结构
struct pixel1
{
public int y1;
public int x1;
public Color color1;
};
struct Blob1//pixel list=blob
{
public List<pixel1> blob1;
public int size;
};
List<Blob1> bloblist = new List<Blob1>();
void runMethod1()
{
Blob1 b1 = new Blob1();
b1.size = 1;
pixel1 p1 = new pixel1();
b1.blob1.Add(p1);
}
不可变结构引用位于此处:
需要这样做:
struct Pixel1
{
public int X1 { get; }
public int Y1 { get; }
public Color Color1 { get; }
public Pixel1(int x, int y, Color c)
{
X1 = x;
Y1 = y;
Color1 = c;
}
};
但要使它成为一个类。struct pixel1
struct pixel1
{
public int y1;
public int x1;
public Color color1;
};
struct Blob1//pixel list=blob
{
public List<pixel1> blob1;
public int size;
};
List<Blob1> bloblist = new List<Blob1>();
void runMethod1()
{
Blob1 b1 = new Blob1();
b1.size = 1;
pixel1 p1 = new pixel1();
b1.blob1.Add(p1);
}
{
公共int y1;
公共int x1;
公共颜色1;
};
struct Blob1//pixel list=blob
{
公开名单1;
公共整数大小;
};
List bloblist=新列表();
void runMethod1()
{
Blob1=新Blob1();
b1.尺寸=1;
pixel1 p1=新的pixel1();
b1.blob1.Add(p1);
}
结构像素1
{
公共int y1;
公共int x1;
公共颜色1;
};
struct Blob1//pixel list=blob
{
公开名单1;
公共整数大小;
};
List bloblist=新列表();
void runMethod1()
{
Blob1=新Blob1();
b1.尺寸=1;
pixel1 p1=新的pixel1();
b1.blob1.Add(p1);
}
我需要将这些像素放入blob并制作ListOfBLOB,这样我就可以根据它们的独特特性对它们进行过滤。(runMethod1())你知道我如何做到这一点吗?你只需这样做:List blob=new List();如果我这样做,我就不能像blob1.size=blob1.Count那样使用它;哦,我现在看到了。谢谢。我需要把这些像素放到blob中,然后制作ListOfBlob,这样我就可以根据它们的独特特性对它们进行过滤。(runMethod1())你知道我怎么做吗?你可以简单地这样做:List blob=new List();如果我这样做,我就不能像blob1.size=blob1.Count那样使用它;哦,我现在看到了。谢谢。看起来我可以这样做。我可以使用floodfill和lockbits.getpixels方法,将每个像素信息放入像素1,然后将它们放入blob1,然后全部放入bloblist。然后循环通过bloblist,分析关于blob1的信息并输入我可以使用floodfill和lockbits.getpixels方法,将每个像素信息放入像素1,然后将它们放入Blob1,然后全部放入bloblist。然后循环通过bloblist,分析Blob1s的信息,并将信息输入Blob1变量les将稍后对其进行研究和处理。