Можно использовать множество различных методов. ImageMagick имеет FX language, который может выполнять сложные вычисления.
convert a.jpg b.jpg -fx 'Wi=w/2; Hi=h/2; hypot(Wi-i, Hi-j) < 50 ? u : v' c.jpg
Например ...
convert -size 100x100 PLASMA: a.jpg

convert -size 100x100 GRADIENT:LIME-ORANGE b.jpg

convert a.jpg b.jpg -fx 'hypot(50-i, 50-j) < 50 ? u : v' c.jpg

Обновление с помощью другой техники.
Более быстрый подход может заключаться в использовании маски (ов) изображения формы, которую вы хотите обрезать, и составлять/комбинировать ее между обоими изображениями. Для этого потребуется формат, поддерживающий альфа-каналы, но только для начальной работы. Например ...
Создайте маску круга и скопируйте значения в альфа-канал.
convert -size 100x100 xc:White -fill Black \
-draw 'circle 50 50 50 5' -alpha Copy mask.png

convert \(a.png mask.png -alpha Set -compose Dst_Out -composite \) \
b.png -compose Dst_Atop -composite c.png
