繁体   English   中英

为什么 OpenCV imread() 有时会旋转图像数据?

[英]why does OpenCV imread() sometimes rotate the image data?

我目前正在使用 opencv 来获取不同图像的图像大小,但我遇到了一些问题。 有时出于某种原因,宽度数据会与高度数据混淆。 这是一个例子:

第一个示例图像大小:2988 * 5312 高度:5312 宽度:2988

OpenCV 数据:(2988,5312,3)

第二个例子 图片尺寸:4160 * 3120 高度:3120 宽度:4160

OpenCV 数据:(3120,4160,3)

从这两个示例中可以看出,它们的宽度和高度位于元组中的不同槽中。 但是从我在网上搜索到的,img.shape[0]应该代表高度,img.shape[1]应该代表宽度。 但在示例 1 中,宽度和高度似乎混淆了。 我该如何解决这个问题? 任何人都可以解释这里发生的事情,无论如何让它以相同的方式显示所有照片。

我想OpenCV正在查看“EXIF 方向”字段。 您可以使用以下方法禁用它:

im = cv2.imread(filename, cv2.IMREAD_COLOR|cv2.IMREAD_IGNORE_ORIENTATION)

您可以使用exiftool在终端中轻松检查方向:

exiftool YOURIMAGE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM