如何在ImageMagick中改善拼接图像的输出质量?

21

我使用montage拼接图像,但图像输出的分辨率低于输入的分辨率。

我的图像输入尺寸为640x480每个

但我得到的输出是256x378

我在网上搜索了一下,但找不到改善输出图片质量的解决方案。

我正在使用的montage命令:

montage -tile 2x3 1.png 2.png 3.png 4.png 5.png 6.png -resize 1024x1024  montage_png.png

有人知道如何获得更好的输出分辨率吗?

3个回答

25

将操作模式风格(-mode)设置为concatenate值(如文档中所述)。

例如:

montage -mode concatenate file1.jpg file2.jpg output.jpg

1
对我来说完全没问题!montage *.jpg -mode concatenate -tile 4x5 MONTAGE.jpg - Boris Däppen
1
但是如果你第二次运行它,会发生什么呢?请看下面的答案: - SDsolar

10

建议 1

可以尝试这样做...让 montage 把图片组织成蒙太奇效果,然后把结果传递给 convert 来调整结果的大小。

montage -tile 2x3 1.png 2.png 3.png 4.png 5.png 6.png miff:- | convert miff:- -resize 1024x1024 montage.png

中间图像以MIFF(Magick Image File Format)格式传递,该格式保留所有细节、元数据和质量。

建议2

如果仅涉及5或6个图像而不是数百个,则也可以使用convert一次性完成所有操作,如下所示。您只需要知道+append将图像连接成一行,-append将图像连接成一列即可。因此,我将1和2合并在一行中,将3和4合并在一行中,将5和6合并在一行中,然后将这三行叠加在一起并调整结果的大小。

convert [12].png +append \( [34].png +append \) \( [56].png +append \) -append -resize 1024x1024 result.png

输入图像描述


1
非常感谢!第一种方法产生了相同的问题,但第二种方法完美地工作了... - gvd
4
需要在第一种方法或原作者尝试的方法中加入“-mode concatenate”模式。 - eold

7

Montage的使用非常简单,如下所示:

montage -mode concatenate -tile 2x3 *.png -resize 1024x1024 outfile.png

但是,如果您再次运行此命令,这个命令也将包括 outfile.png 作为新拼贴图的一部分。


Montage 工具非常智能地进行格式转换,因此可以将该命令更改为:

montage -mode concatenate -tile 2x3 *.png -resize 1024x1024 outfile.jpg

这会生成一个宽度为2048像素的文件。


如果输入文件大小均匀,最简单的方法是这样使用:

montage -mode concatenate -tile 2x3 *.jpg outfile.jpg

问题的要点:

在使用gnuplotpng终端时,默认画布大小为640x480,因此将2x3的拼贴制作成适当的JPG文件,结果是一个宽度为1280像素的文件。

如果在网页上显示,那么它会太宽而无法打印。打印边界大约是640像素宽(取决于边距如何设置),因此通常可以使用以下方法来解决:

montage -mode concatenate -tile 2x3 -resize 320x240 *.png outfile.jpg

使用320x240可以保留原始图形的纵横比。

如果需要强制它成为正方形,则应在gnuplot中的set terminal命令中执行。

图像后处理的最佳实践是避免扭曲图像,超出生成原始图像的意图。


这对我来说是最好的解决方案。montage -mode concatenate -tile 3x2 *.jpg -transpose -resize 1920x1080 montage.jpg - Fábio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接