В настоящее время я пытаюсь реализовать преобразования с помощью EMGU, хотя я не могу понять, как он работает (и, похоже, нет примеров в Интернете).Трансформации с помощью Emgu (OpenCV) - Аффинный/перспективный?
У меня есть мое изображение с четырьмя точками, которые я хочу преобразовать из (и в), хотя я не знаю, какие другие переменные требуются, он запрашивает «mapMat»?
Вот то, что я до сих пор:
float[,] tmp = {
{bottomLeft.x, bottomLeft.y},
{topLeft.x, topLeft.y},
{topRight.x, topRight.y},
{bottomRight.x, bottomRight.y}
};
Matrix<float> sourceMat = new Matrix<float>(tmp);
float[,] target = {
{0, height},
{0, 0},
{width, 0},
{width, height}
};
Matrix<float> targetMat = new Matrix<float>(target);
//mapMat = just a placeholder matrix?
Matrix<float> mapMat = new Matrix<float>(target);
CvInvoke.cvGetAffineTransform(sourceMat.Ptr, targetMat.Ptr, mapMat.Ptr);
Это, однако, не работает. Я также не знал, является ли оптимальное решение аффинной трансформацией? Я тоже кое-что прочитал о FindHomography, а также о перспективных преобразованиях, но не уверен, что они будут применяться здесь.
Цель преобразования я хочу достичь, как это:
http://img832.imageshack.us/img832/5157/targettransform.png
Любая помощь будет принята с благодарностью,
Благодаря
Извините, это та ken мне некоторое время, чтобы вернуться к вам, Лука, это была большая помощь, и теперь я (вроде) получил ее работу :) –