opengl - 在几秒钟而不是几小时内旋转数百个 JPEG

标签 opengl graphics opencv opencl image-rotation

我们的计算机一次获取了数百张图像,我们需要尽快旋转和调整它们的大小。 旋转 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,但我们想知道性能提升是否会很明显。

我们使用的硬件相当有限,因为设备应该尽可能小。

该软件是带有官方(闭源)radeon 驱动程序的 debian 6。

最佳答案

您可以执行仅修改 EXIF 部分的无损旋转。这将使您的图片旋转得更快。

并查看执行无损 jpeg 修改的 jpegtran 实用程序。 https://linux.die.net/man/1/jpegtran

关于opengl - 在几秒钟而不是几小时内旋转数百个 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396856/

相关文章:

python - 如何限制Kaze发现的关键点数量?

opencv - 在 OpenCV 3 中使用 OSVR 相机

java - 画一条线连接两个矩形

c++ - 这可以用 OpenGL 完成吗?

opengl:将原点更改为左上角

c++ - 指针数据变化

iphone - 如何将 iPhone 拍摄的叠加图像和照片创建为单个图像?

c# - .NET Compact Framework 2.0 中的 Alpha 混合颜色

c++ - 错误 LNK2019 ARuco 和 OpenCV VS2010 c++

c++ - 使用鼠标单击和鼠标拖动(Opengl)绕立方体