我有一个 720x1280 的图像。我尝试加载并显示它。但我看到 90 度旋转的图像(1280x720)。
我的简单代码是:
cout << "Size = " << imread(fileName).size() << endl;
结果是:
Size = [1280x720]
如何使用 opencv 加载和显示大尺寸图像?我使用opencv 2.4.10。
图像可能是以这种方式编码的。智能手机通常每次都以相同的方向对图像进行编码,而不管它是如何保存的,但会将元数据添加到图像中,以便查看程序可以以预期的方式显示它。OpenCV 不考虑这个元数据。您可以自己旋转图像。(如果图像倒置,请使用 1 而不是 0)。
cv::transpose(image, image);
cv::flip(image, image, 0);
如果您更喜欢修改磁盘上的图像,则可以使用gimp。只需打开图像并保存/导出它。Gimp 将在打开图像时使用元数据,但在没有它的情况下重新编码图像。