В качестве хобби я пытаюсь изучить метод определения текста сцены.
Я хочу сделать что-то вроде следующего:
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
{
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;
}
};
Но сделайте это классным.
вы можете просто сделать это: List <List <pixel1>> blob = new List <List <pixel1>> ();
Если я это сделаю, я не смогу использовать это как blob1.size = blob1.Count;
О, теперь я это вижу. Спасибо.
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);
}
Кажется, я могу это сделать вот так. Я могу использовать метод floodfill и lockbits.getpixels и получать информацию о каждом пикселе в pixel1, затем помещать их в Blob1, а затем все в bloblist. Затем прокрутите список BLOB-объектов и проанализируйте информацию о Blob1 и введите информацию в переменные Blob1, чтобы изучить и обработать их позже.
Мне нужно поместить эти пиксели в blob и составить listofblobs, чтобы я мог фильтровать их по их уникальным характеристикам. (RunMethod1 ()) Вы знаете, как я могу это сделать?