我们的计算机一次获取了数百张图像,我们需要尽快旋转和调整它们的大小。 旋转 90、180 或 270 度。
目前我们使用的是命令行工具GraphicsMagick旋转图像。旋转图像 (5760*3840 ~ 22MP) 大约需要 4 到 7 秒。
以下python code遗憾的是给了我们同样的结果
import cv
img = cv.LoadImage("image.jpg")
timg = cv.CreateImage((img.height,img.width), img.depth, img.channels) # transposed image
# rotate counter-clockwise
cv.Transpose(img,timg)
cv.Flip(timg,timg,flipMode=0)
cv.SaveImage("rotated_counter_clockwise.jpg", timg)
有没有更快的方法来利用显卡的强大功能来旋转图像?我想到了 OpenCL 和 OpenGL,但我们想知道性能提升是否会很明显。
我们使用的硬件相当有限,因为设备应该尽可能小。
- Intel Atom D525 (1,8 Ghz)
- Mobility Radeon HD 5430 Series
- 4 GB 内存
- 固态硬盘 Vertility 3
该软件是带有官方(闭源)radeon 驱动程序的 debian 6。
最佳答案
您可以执行仅修改 EXIF 部分的无损旋转。这将使您的图片旋转得更快。
并查看执行无损 jpeg 修改的 jpegtran 实用程序。 https://linux.die.net/man/1/jpegtran
关于opengl - 在几秒钟而不是几小时内旋转数百个 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396856/