логарифмическое изменение размера изображения с помощью Imagemagick?

#image-processing #imagemagick #image-resizing #logarithm

#обработка изображений #imagemagick #изменение размера изображения #логарифм

Вопрос:

Я хотел бы изменить масштаб изображения в одном измерении, используя логарифмический масштаб. Я искал какую-то идею о том, как это сделать. Некоторые параметры:

  1. -evaluate кажется, принимает Pow и другие функции
  2. -fx кажется, это вариант, и / или я все еще работаю над его пониманием

Оба вышеперечисленных параметра могут быть недоступны для -size операций изменения размера или.

Комментарии:

1. Можете ли вы опубликовать пример ввода и вывода? Я не понимаю вашего последнего утверждения о размере. Пожалуйста, уточните.

Ответ №1:

Я не уверен, о чем вы спрашиваете. Но вот как применить логарифмическое преобразование к изображению в ImageMagick. Поскольку геометрические преобразования являются обратными преобразованиями (укажите выходной пиксель и найдите, откуда он взялся на входном изображении), мы должны использовать обратную логарифму величину, которая является экспонентой. Например, для горизонтального преобразования:

Ввод:

введите описание изображения здесь

 convert lena.png -virtual-pixel black -fx "u.p{exp(6*i/(w-1)),j}" lena_ln.png
 

введите описание изображения здесь

Теперь, если вы хотите, чтобы оно точно соответствовало 256 пикселям по горизонтали без черной области справа, нам нужно вычислить логарифм:

 ln(x 1) for x=0 to 255
ln(0 1) = ln(1) = 0
ln(255 1) = ln(256) = 5.545
 

Теперь нам нужна обратная операция для -fx , которая является экспоненциальной,

 ln(x 1) = 5.545
x 1 = exp(5.545)
x = exp(5.545) - 1
 
 convert lena.png -virtual-pixel black -fx "u.p{exp(5.545*i/(w-1))-1,j}" lena_ln2.png
 

введите описание изображения здесь