Мне нужно выполнить операцию по изменению перспективы изображения из командной строки?
Есть ли место, где документация представлена должным образом? Я задал этот вопрос на Stack Overflow, можете проверитьздесь.
Если есть какой-либо другой инструмент, предоставляющий интерфейс командной строки для выполнения тех же задач, то он также будет мне полезен.
решение1
Вероятно, лучшим инструментом для работы с изображениями будет ImageMagick. Если вы посмотрите документацию, то увидите обширные примеры, показывающие, как использовать эту -distort
функцию, которая, как я считаю, вам нужна.
Пример
До после
Командная строка для выполнения преобразования:
$ convert checks.png -filter point
-virtual-pixel tile -mattecolor DodgerBlue
-distort Perspective '0,0 20,60 90,0 70,63 0,90 5,83 90,90 85,88'
horizon_tile_point.png
Есть еще 2 метода выполнения выборки, чтобы получить лучшее изображение. А именно, «Grid Super Sampling» и «Elliptical Weighted Area (EWA) Resampling». Последний используется по умолчанию.
Как рассчитать координаты?
Есть 2 ресурса, чтобы понять, как сгенерировать ряд координат для convert
. Первый — тот, который я привел выше. Второй — это SO Q&A под названием:Понимание искажения проекции перспективы ImageMagick, конкретноОтвет @KurtPfeifle.
Координаты следующие:
Sx1,Sy1 Dx1,Dy1 Sx2,Sy2 Dx2,Dy2 Sx3,Sy3 Dx3,Dy3 ... Sxn,Syn Dxn,Dyn
- x используется для представления координаты X.
- y используется для представления координаты Y.
- 1, 2, 3, ... n используется для обозначения 1-го, 2-го, 3-го, ... n-го пикселя.
- S здесь используется для исходного пикселя.
- D здесь используется для целевого пикселя.