![](/img/trans.png)
[英]cannot import name 'load_img' from 'keras.preprocessing.image'
[英]Keras Preprocessing Rotates Image While Importing It With load_img()
我刚开始学习 Keras API,正在试验 MNIST 数据集。 我让它正常工作,但是当我尝试测试我拍摄的照片时from the keras.preprocessing.image
库中的函数load_img()
出现问题。 它将纵向图像导入为横向图像。 我用智能手机在人像模式下拍照,Windows 正确显示宽度 3024 和高度 4032 像素。
当我加载该图像并打印宽度和高度时,它显示为 4032x3024。 此外,当我执行img.show()
,它似乎逆时针旋转了 90 度。 所有这一切都在加载后立即发生,无需任何处理。 我尝试查看load_img()
的 API,但找不到任何使其在加载时旋转的参数。
这是一个向您展示问题的虚拟示例:
from keras.preprocessing.image import load_img
img = load_img('filepath/test.jpg') # Load portrait mode image Windows says 3024x4032
width, height = img.size
print(width, height) # Prints 4032 3024
img.show() # Shows it rotated by 90 degrees counterclockwise
我希望它以纵向模式导入。 为什么会旋转? 问题是在横向模式下拍摄的照片也被导入为 4032 x 3024,所以我无法区分这两个方向。 如果图像处于纵向模式,我希望能够旋转图像,但如果处于横向模式,则不能旋转它。
编辑:我只是尝试使用 Pillow 加载图像,结果完全相同
用:
jhead -v YourImage.jpg
检查名为Orientation
的 EXIF 参数 - 手机相机将其设置为可以旋转图像。 尝试使用一个有效的图像和另一个“不愉快”的图像。
您可以使用ImageMagick纠正它:
convert unhappy.jpg -auto-orient happy.jpg
或者使用exiftool
可能更容易。 讨论和例子在这里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.