Вопрос

Я работаю над программой C# для обработки изображений (заданных как int[,])..

У меня есть двумерный массив пикселей, и мне нужно повернуть их вокруг точки, а затем уменьшить, чтобы они соответствовали исходному массиву.Я уже нашел статьи об использовании матрицы для преобразования в точку и поворота, а затем обратного преобразования.Осталось масштабировать полученное изображение так, чтобы оно соответствовало массиву исходного размера.

Как это можно сделать?(желательно с двумя уравнениями: одно для x и одно для y)

Это было полезно?

Решение

Взгляни здесь.Это должно дать вам всю математическую информацию о вращении координат.

Другие советы

в Матрица класс, у вас есть обе функции Поворот(В) и Шкала.Что еще вы бы узнали?

Вам нужно найти преобразование результирующего массива в исходное изображение.Затем вы преобразуете точки в месте назначения в точки исходного изображения и копируете.Также возможен вариант сглаживания посредством передискретизации.Ваша матрица вращения также может применять масштабирование — просто умножьте матрицу на масштабный коэффициент (предполагается 2x2).Если вы используете матрицу 3x3 для вращения, масштабирования и перемещения, просто умножьте верхний левый угол 2x2 на масштабный коэффициент.

Наконец, рискуя проявить некоторую скромность, привожу ссылку на какой-то старый DOS-код TP6/asm, который я написал для полноэкранного ротационного масштабирования.Странные вещи, которые висят в сети:http://www.hornet.org/cgi-bin/scene-search.cgi?search=Paul%20H.%20Kahler

Все, что вам нужно сделать, можно сделать с помощью Bitmap изображения в GDI+ (с помощью System.Drawing... пространства имен).Эти классы разработаны и оптимизированы для выполнения именно таких задач (манипулирования изображениями).Есть ли какая-то конкретная причина, по которой вы не можете работать с реальным Bitmap вместо int[,]?Вы могли бы даже написать очень простую процедуру для создания Bitmap из int[,], делайте все, что вам нужно, на Bitmap, а затем преобразовать его обратно в int[,] в конце.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top