我有几张像下面的图像,我想将它们旋转几次以进行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;
}
}
}
但是,当我在旋转代码中使用该位置时,我只会得到空白的白色图像。
包含字母的图像