如何在一幅图片中的多个单词上绘制矩形?

时间:2019-04-18 14:53:15

标签: c# image-processing

我编写了一个代码,该代码使用C#在图像中的单词周围制作一个矩形。现在,我想编写一个可以在多个单词周围形成矩形的代码。我只需要知道如何做到这一点。或者只是通过一些代码来说明我。

我尝试阅读但找不到解决方法。

Bitmap bmp = new Bitmap(pictureBox1.Image);
    int x1=0, x2=0, x3=0, x4=0, y1=0, y2=0, y3=0, y4 = 0;

    bool f1=false, f2=false, f3=false, f4 = false;
    Graphics g = pictureBox1.CreateGraphics();
    Pen p = new Pen(Color.Red);


    for (int j = 0; j < bmp.Width;j++ )
    {
        for (int i = 0; i < bmp.Height;i++ )
        {
            if(bmp.GetPixel(j,i).R<10){
                x1 = j;
                y1 = i;
                f1 = true;
                break;
            }
        }
        if(f1){
            break;
        }
    }

    for (int j = 0; j < bmp.Height; j++)
    {
        for (int i = 0; i < bmp.Width; i++)
        {
            if (bmp.GetPixel(i, j).R < 10)
            {
                x2 = i;
                y2 = j;
                f2 = true;
                break;
            }
        }
        if (f2)
        {
            break;
        }
    }


    for (int j =bmp.Width-1; j >=0 ; j--)
    {
        for (int i = 0; i < bmp.Height; i++)
        {
            if (bmp.GetPixel(j,i).R < 10)
            {
                x3 = j;
                y3 = i;
                f3 = true;
                break;
            }
        }
        if (f3)
        {
            break;
        }
    }


    for (int j = bmp.Height-1; j >=0 ; j--)
    {
        for (int i = 0; i < bmp.Width; ++i)
        {
            if (bmp.GetPixel(i, j).R < 10)
            {
                x4 = i;
                y4 = j;
                f4 = true;
                break;
            }
        }
        if (f4)
        {
            break;
        }
    }
    g.DrawRectangle(p, x1, y2, x3 - x1, y4 - y2);

enter image description here

0 个答案:

没有答案