Определение угла поворота изображения - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет! Столкнулся с следующей проблемой: имеется сканированное изображение (после бинаризованное), на котором имеется таблица. Требуется сегментировать эту таблицу и повернуть ее так, что бы она была действительно ровной (под 90 градусов). Вся проблема в этом повороте. Пытался ковырять в сторону Graphics, но все же не получается. Дошел до того, что нужен угол, на который требуется повернуть, но как его вычислить в пикселях, зная координаты черного левого верхнего пикселя и черного нижнего левого пикселя. Буду благодарен за любые мысли по делу.
            Graphics g = Graphics.FromImage(bitmap);
            Matrix m = new Matrix();
            m.RotateAt(-10, new Point(0, 0));
            g.Transform = m;
            g.DrawImage(bitmap, 10, 10, bitmap.Width, bitmap.Height);

Решение задачи: «Определение угла поворота изображения»

textual
Листинг программы
private Bitmap rotateImage(Bitmap b, float angle)
{
  //create a new empty bitmap to hold rotated image
  Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
  //make a graphics object from the empty bitmap
  Graphics g = Graphics.FromImage(returnBitmap);
  //move rotation point to center of image
  g.TranslateTransform((float)b.Width/2, (float)b.Height / 2);
  //rotate
  g.RotateTransform(angle);
  //move image back
  g.TranslateTransform(-(float)b.Width/2,-(float)b.Height / 2);
  //draw passed in image onto graphics object
  g.DrawImage(b, new Point(0, 0)); 
  return returnBitmap;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы