批量缩小jpeg图像的最快方法

问题描述 投票:2回答:1

如果硬件不是限制因素,那么采用大量高分辨率jpeg图像并缩小尺寸的最快方法是什么?例如,如果我有一个20,000个jpeg图像的文件夹,它们的宽高比不同,但都相当大(接近4k分辨率),我想将每个图像调整为512x512。

我已经尝试使用带有libjpegturbo的Python pillow-simd和在具有相当强大的CPU和V100 GPU的机器上进行多处理(虽然我认为没有使用),并且它仍然需要90分钟才能完成这项工作。

有没有人知道图像缩小方法可以利用强大的GPU或具有一些其他显着的速度优化?或者,这真的是当前最先进的图像缩小速度吗?

image performance jpeg image-resizing downsampling
1个回答
0
投票

我过去做过一些繁重的图像处理。有一个名为OpenCV(计算机视觉)的开源框架,可以使用Python,C ++和Java。 OpenCV使用矩阵(MAT)来进行各种图像处理 - 调整大小是件小事。这应该给你一个粗略的想法。

代码的java版本可能如下所示:

import static org.opencv.imgproc.Imgproc.*;
import static org.opencv.imgcodecs.Imgcodecs.imread;
import static org.opencv.imgcodecs.Imgcodecs.imwrite;

//loop over your array of files here
Mat src  =  imread(myFilePath);
Mat resizeimage = new Mat();
Size scaleSize = new Size(512,512);
resize(src, resizeimage, scaleSize , 0, 0, INTER_AREA);
imwrite("C:\\File\\input.jpg", resizeimage);

如果你想进行超高速图像处理,C ++会更好用。我使用OpenCV w / c ++进行实时电影图像处理,它具有以36帧/秒的速度处理所需的所有马力。使用Java,输出为每秒4帧。

© www.soinside.com 2019 - 2024. All rights reserved.