У меня есть изображение 720×1280. Я пытаюсь загрузить и показать это. Но я вижу повернутое на 90 градусов изображение (1280×720).
Мой простой код:
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 будет использовать метаданные при открытии изображения, но перекодировать изображение без него.
Других решений пока нет …