当我使用OpenCV的imread函数读取图像时,我发现其高度和宽度被交换了。比如我的原始图像尺寸为(610乘以406),但是使用OpenCV::imread函数读取后,其尺寸变成了406乘以610。即使在将原始图像旋转后传递给该函数,结果也没有任何变化。读取的图像仍具有原始尺寸。
请看以下示例代码和图像以获得进一步澄清:
因此,我提供了两个输入图像:一个是原始图像,另一个是旋转后的图像(我使用Windows的“旋转”命令进行旋转)。对于这两个图像,我获得的输出结果相同。我认为旋转图像实际上并没有改变其形状。我这么认为是因为当我试图将旋转后的图像放在此处时,预览仍显示未旋转的版本,所以我不得不对其进行屏幕截图,然后才能将其粘贴到此处。
以下是示例代码:
我得到的结果是: 图像形状: (406,610,3) 图像形状: (406,610,3) 对于这两张图片都是如此。
由于我刚刚加入,无法在这里粘贴输入/输出图片,因为它说您应该拥有“10个声望”的权限。有任何建议将非常有帮助。谢谢!
请看以下示例代码和图像以获得进一步澄清:
因此,我提供了两个输入图像:一个是原始图像,另一个是旋转后的图像(我使用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个声望”的权限。有任何建议将非常有帮助。谢谢!
.cols
应该是原始图像的宽度,.rows
应该是原始图像的高度。如果不是这样的话,也许你的图像查看器在显示之前会内部旋转图像!? - Micka