java如何确定和自动旋转图像?
我有很多图像,其中一些图像需要旋转
样本:
我想逆时针旋转这个图像90°
我在谷歌上搜索,想知道如何旋转图像,并找到了许多链接和线程。但是如何确定图像是否需要旋转呢?Picasa具有自动旋转功能。我想有类似的功能
任何指针都会对我很有帮助
我发现了一个link,但它与Android有关
你可以在下面搜索框中键入要查询的问题!
我有很多图像,其中一些图像需要旋转
样本:
我想逆时针旋转这个图像90°
我在谷歌上搜索,想知道如何旋转图像,并找到了许多链接和线程。但是如何确定图像是否需要旋转呢?Picasa具有自动旋转功能。我想有类似的功能
任何指针都会对我很有帮助
我发现了一个link,但它与Android有关
# 1 楼答案
Roger Rowland提供的metadata-extractor指针解决了这个问题。我把它贴在这里以备将来参考:
# 2 楼答案
有时,您无法使用相机拍摄的图像,也无法使用EXIF数据。在我的例子中,我有一个项目要扫描并导入数万张老式明信片到我们的数字存储库中,其中大部分是正面的风景,只有一小部分是肖像(即使在这些明信片上,背面仍然是风景)。为了尽可能减少扫描、桌面扫描和裁剪所需的时间,每次扫描和横向扫描(总是)要进行三次
我来问这个问题,是想找到一个答案来自动检测和旋转这些纵向定向卡扫描
关于基于摄像头元数据执行此操作,有很多讨论。有一些例子说明了如何使用机器学习自动调平相机未固定在地面/地平线上的照片。我还没有找到任何对我的情况有帮助的方法(这并不是说没有,但如果有,由于其他情况,很难找到)
编辑2019年3月22日:这里有一个https://d4nst.github.io/2017/01/12/image-orientation/
。。。,所以我确实想出了一个我要尝试的答案:
对于每张卡的正面(使用ImageMagick和简单脚本进行批处理):
我用一次扫描测试了这一点,在我的n=1的情况下,API有一个更长的标签列表和一个更好(而且更长)的正确方向的建议标题
潜在问题:
# 3 楼答案
我在使用一些开关箱时遇到了一些问题。即使在没有旋转的情况下,仿射变换也会在图像中创建一个带有黑色空间的新图像,并会切掉一些维度。在这里,我使用元数据提取器类来确定应该是什么方向。然后我使用Imgscalr库进行缩放和旋转
下面可以看到对我有效的完整解决方案。感谢Tapas Bose提供原始解决方案。我希望这对任何人都有帮助