В настоящее время я работаю над внедрением алгоритма в EmguCV в C#, что означает, что я не хочу использовать функцию rotate, которая поставляется с EmguCV.Как реализовать алгоритм rotate в Emgu CV?
Я уже нашел алгоритм, который я хочу реализовать, но я как бы зациклился на том, как его реализовать. Основная проблема заключается в том, что я не знаю, как указать значения X и Y моей матрицы для выполнения запланированных вычислений.
вращения Алгоритм: http://i.stack.imgur.com/hQMxF.jpg
Прямо сейчас мой код выглядит следующим образом:
static void Main(string[] args) {
Mat image = CvInvoke.Imread("C:\\Users\\Leon\\Desktop\\a.jpg", LoadImageType.Grayscale);
int height = image.Height;
int width = image.Width;
//Convert to Matrix
Matrix<Byte> matrix = new Matrix<Byte>(image.Rows, image.Cols, image.NumberOfChannels);
image.CopyTo(matrix);
Matrix<Byte> newMatrix = new Matrix<Byte>(image.Rows, image.Cols, image.NumberOfChannels);
image.CopyTo(newMatrix);
for (int i = 0; i < matrix.Rows-1; i++)
{
for (int j = 0; j < matrix.Cols-1; j++)
{
}
}
CvInvoke.Imshow("abc", matrix);
CvInvoke.WaitKey(0);
}
Но, как я уже сказал, я в сомнении о том, как реализовать алгоритм. Мой план состоял в том, чтобы повернуть пиксели в «матрице» и сохранить их в «newMatrix», но я не знаю, как указать значения X и Y моей матрицы.
Возможно, кто-то может помочь мне здесь.
EDIT: Было высказано предположение, что этот ответ здесь: «How can I get and set pixel values of an EmguCV Mat image?» будет ответом на мой вопрос. Но это не так. Я знаю, что могу делать Math.Cos и Math.Sin, но я не знаю, как указать X и Y в моей матрице. У меня нет проблем с доступом к данным в моей матрице.
Возможный дубликат [Как я могу получить и установить значение пикселей в EmguCV Mat изображения? ] (http://stackoverflow.com/questions/32255440/how-can-i-get-and-set-pixel-values-of-an-emgucv-mat-image) – slawekwin