У меня есть несколько изображений, подобных приведенному ниже, где я хочу повернуть их несколько раз для распознавания текста.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;
}
}
}
Однако, когда я использую это местоположение в коде поворота, я просто получаю пустое белое изображение.
Изображение, содержащеебуква