我按照Why is ImageMagick with OpenCL slower than OpenMP?的说明安装了imagemagick
。我需要将图像调整为4种不同的尺寸,并且必须裁剪它们。我编写了一个C ++程序,可以在文件夹中为100个图像调用image.resize("500x500!")
,image.resize("550x550!")
,image.resize("600x600!")
,image.resize("650x650!")
,image.crop(Geometry(200,150, 10,50))
。
当我在命令行中运行相同的大小写时:
cd /home/Downloads/ImageMagick-6.9.3-7/utilities/ && \
exec sudo time ./convert img.jpg -write \
mpr:scroll -filter Lanczos -resize 500x500 -crop 200x150+10+50 -write m.jpg delete \
mpr:scroll -filter Lanczos -resize 600x600 -crop 200x150+10+50 -write n.jpg delete \
mpr:scroll -filter Lanczos -resize 550x550 -crop 200x150+10+50 -write o.jpg delete \
mpr:scroll -filter Lanczos -resize 650x650 -crop 200x150+10+50 p.jpg;
我的输出为8124.13ms。但是当我在Magick ++ API中做同样的情况时,我得到了369237毫秒的输出。为什么会有这么大的差异?
当我检查设备基准测试文件时:
$ cat ~/.cache/ImageMagick/ImagemagickOpenCLDeviceProfile
显示
<version>ImageMagick Device Selection v0.9</version>
<device><type></type><name>Quadro M6000</name><driver>352.79</driver><max cu>24</max cu><max clock>1114</max clock><score>0.0960</score></device>
<device><type></type><score>1.1890</score></device>
根据How do I build ImageMagick with OpenCL?中的帖子,API必须在GPU中运行,因为GPU设备的分数最低。我该如何解决?