从特定点而不是中心c#

时间:2019-04-24 15:45:02

标签: c# image image-processing

我有几张像下面的图像,我想将它们旋转几次以进行OCR。每次10度。

我现在遇到的问题是我可以从中心旋转图像,但是黑色字母始终位于图像中的随机点。因此,虽然我可以再将其旋转10度,但通常会偏离图像。

如何从当前字母所在的中心旋转下面的图像?

请记住,它的位置是随机的。

这是我当前用于旋转的代码

Bitmap rotatedImage = new Bitmap(bmp.Width, bmp.Height);
using (Graphics g = Graphics.FromImage(rotatedImage))
{
    // Set the rotation point to the center in the matrix
    g.TranslateTransform(bmp.Width / 2, bmp.Height / 2);
    // Rotate
    g.RotateTransform(angle);
    // Restore rotation point in the matrix
    g.TranslateTransform(-bmp.Width / 2, -bmp.Height / 2);
    // Draw the image on the bitmap
    g.DrawImage(bmp, new System.Drawing.Point(0, 0));
}

return rotatedImage;

这是我创建的代码,用于查找字母的第一个黑色像素的位置。

        float limit = 0.1f;

        int x = 0;
        int y = 0;

        bool done = false;

        for (int i = 0; i < bmp.Width; i++)
        {
            if (done) break;

            for (int j = 0; j < bmp.Height; j++)
            {
                if (done) break;

                System.Drawing.Color c = bmp.GetPixel(i, j);

                if (c.GetBrightness() < limit)
                {
                    x = i; y = j; done = true;
                }
            }
        }

但是,当我在旋转代码中使用该位置时,我只会得到空白的白色图像。

包含字母的图像

enter image description here

0 个答案:

没有答案