Вопрос по texture-mapping, image, distortion, image-processing, imagemagick – Отображение изображения на набор координат

2

У меня типичное исходное изображение с соотношением сторон 3: 4. У меня также есть набор координат, на которые мне нужно отобразить изображение в отдельном изображении. Координаты не совсем прямоугольные; во всяком случае, они определяют неправильную сетку.

Так, например, (0,0) может соответствовать (12,33), (120,0) = & gt; (127,36), (240,0) => (226,13) и т. Д.

Моя цель - привести исходное изображение в соответствие с новой формой, сопоставив исходные координаты с пунктом назначения и применив искажение.

Как можно это сделать? Я использую .NET, но я прекрасно обращаюсь, например, к. ImageMagick.

EDIT: По запросу, вот картинка. Левое изображение - простая фотография, равномерно разделенная (не обращайте внимания на мои дерьмовые навыки MSPaint). Правая сторона показывает форму цели. У меня есть координаты для каждой точки на правой стороне. Цель состоит в том, чтобы отобразить (спроецировать?) Плоское изображение на фигуру так, чтобы точки совпали.

enter image description here

Картинка добавлена. Не совсем та же самая цель, что и та, почти противоположная, но с добавленной проблемой цели неравной формы. roufamatic
Вы пытаетесь достичьthis? Мне неясно, я предлагаю вам загрузить несколько изображений, которые демонстрируют то, что вы пытаетесь сделать. karlphillip

Ваш Ответ

2   ответа
2

Посмотрите в ImageMagickFreeform Искажает.

2

У меня есть несколько примеров операторов искажения на моем сайте (http://www.rubblewebs.co.uk/imagemagick/operators/distort.php ) - используя php, но вы получите идею.

Вы, вероятно, хотите метод Шепардса.

$cmd = "$input -matte -virtual-pixel transparent".  
" -distort Shepards \"0,0 0,0  0,100 20,100 0,200".  
" 0,200 133,200 133,180 266,200 266,200 266,100".  
" 246,100 266,0 266,0 133,0 133,20\" ";  
exec("convert $cmd shepards.png");

enter image description here

Код для php, но я предполагаю, что вы имеете в виду Imagick. Если так, то да; но я не использую Imagick:php.net/manual/en/imagick.distortimage.php
Есть ли способ сделать это в php?
Большая помощь, спасибо. Мои точки слишком близки друг к другу, и Шепардс кажется, что в результате получается беспорядок. Но полиномиальное искажение, казалось, работало очень хорошо. roufamatic

Похожие вопросы