我刚开始学习Keras API,正在尝试MNIST数据集。我得到了它正常工作,但我有一个问题的函数load_img()
from the keras.preprocessing.image
库,当我试图测试一张图片,我采取。它将面向肖像的图像导入为风景图像。我用我的智能手机在人像模式下拍摄了这张照片,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加载图像,结果完全一样
2条答案
按热度按时间7fhtutme1#
用途:
检查名为
Orientation
的EXIF参数-手机相机设置它,以便图像可以旋转。尝试一个图像的工作和另一个图像是 “不高兴”。您可以使用ImageMagick进行更正:
或者用
exiftool
更容易。讨论和示例here。dwthyt8l2#
你可以通过保存图像从keras再次解决。