Искажение Шефарда для 2 контрольных точек искажает все изображение - ImageMagick Iphone SDK - PullRequest
2 голосов
/ 09 августа 2011

Я пытаюсь реализовать искажение Шефарда в iphone.Ниже приведен мой код:

const double ctrlPts[8] = {125,200 ,150,150, 255,150, 150, 150};
const size_t q = 8;
MagickDistortImage(magick_wand, ShepardsDistortion , q, ctrlPts, MagickFalse);

Ниже приведен мой результат

Первый - исходное изображение, а второй - искаженное изображение.

Original Image Distorted Image

Я просто хочу переместить один пиксель в другое место.Я не могу понять, где я делаю ошибку.

Я пытаюсь выдать многоточечные и произвольные искажения по этой ссылке

1 Ответ

1 голос
/ 22 августа 2011

Это просто потому, что вы слегка перетаскиваете изображение в центр, а не то, что нужно вставить в зазор?

Попробуйте установить углы, которые нужно зафиксировать:

const double ctrlPts[24] = {
  // Points to move
  125,200 ,150,150, 255,150, 150, 150,

  // Points to fix
  0,0,0,0,   320,0,320,0,   320,460,320,460,    0,460,0,460
};
...