У меня есть блоб, в котором у меня есть 3 буквы.Я извлек информацию о BLOB-объектах, я также использовал анализ контуров, чтобы найти контуры букв и использовать его в качестве OCR, чтобы обнаружить его как символ, используя emguCV.Я использую событие pictureBox1_Click для отображения информации о BLOB-объекте, когда пользователь нажимает на BLOB-объект.Но вместо того, чтобы отображать все 3 буквы в блоке, логика отображает букву, по которой я щелкаю внутри блока.Если я нажимаю на A, он показывает A, но я хочу, чтобы везде, где я щелкаю внутри BLOB-объекта, все 3 должны отображаться в текстовом поле.
Изображение
Вот мой код:
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
int x = e.X - 1;
int y = e.Y - 1;
if ((pictureBox1.Image != null) && (x >= 0) && (y >= 0) &&
(x < pictureBox1.Image.Width) && (y < pictureBox1.Image.Height))
{
int blobID = blobCounter.ObjectLabels[y * pictureBox1.Image.Width + x];
if (blobID != 0)
{
Invalidate();
string s = "";
foreach (Blob blobss in blobs)
{
if(blobss.ID == blobID)
{
//Extract letter coordinates and name
foreach (FoundCharacter found in processor.foundTemplates)
{
Rectangle foundRect = found.sample.contour.SourceBoundingRect;
int x1 = foundRect.X;
int y1 = foundRect.Y;
s = found.template.name;
if ((x1 < x) && (y1 < y))
{
txtchar.Text = s;
}
}
}
}
}
}
}