繁体   English   中英

使用opencv imread读取时图像高度和宽度交换

[英]Image height and width getting swapped when read using opencv imread

当我使用opencv imread函数读取图像时,我发现它的高度和宽度被交换为它应该是什么。 就像我的原始图像是尺寸(610乘406),但在使用opencv :: imread函数读取时,它的尺寸是406乘610.另外,如果我在将原始图像传递给函数之前将其旋转,那么也没有变化。 读取的图像仍具有原始尺寸。

请参阅示例代码和图像以便澄清:因此,下面我提供了输入图像:一个是原始的,第二个是旋转的(我使用Windows旋转命令旋转它,右键单击并选择“向右旋转”)。 我得到的两个图像的输出是相同的。 在我看来,旋转图像实际上并没有改变它的形状。 我是这么认为的,因为当我尝试将旋转的图像放在这里时,它只显示了它的未旋转版本(在预览中)所以,我不得不对它进行屏幕捕获然后粘贴它这里。

这是代码:

import cv2
import numpy as np
import sys
import os

image = cv2.imread("C:/img_8075.jpg")
print "image shape: ",image.shape
cv2.imshow("image",image)
cv2.waitKey(0)
image2 = cv2.imread("C:/img_8075_Rotated.jpg")
print "image shape: ",image2.shape
cv2.imshow("image",image2)
cv2.waitKey(0)

我得到的结果是:图像形状:(406,610,3)图像形状:(406,610,3)两个图像。

我无法在这里粘贴输入/输出图片,因为它说你应该有'10声誉',我刚加入。 任何的意见都将会有帮助。 谢谢!

通常Mat.rows表示图像的高度,Mat.cols表示图像的宽度。

我相信你只是把这些惯例搞混了。 可以访问OpenCV Mat结构(ROW,COLUMN)。

所以一张1920x1080的图像将是1080 ROWS by 1920 COLUMNS(1080,1920)

暂无
暂无

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

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