Определение угла поворота изображения - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д