Когда я читаю изображение с помощью функции 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 репутации», и я только что присоединился. Любые предложения были бы полезны. Благодарность!
.cols
должна соответствовать ширине исходного изображения, а.rows
- высоте исходного изображения. Если это не так, возможно, ваша программа просмотра изображений внутренне поворачивает изображения перед отображением?!? - person Micka   schedule 21.04.2015