Я пытаюсь применить преобразование перспективы ко всему изображению с помощью OpenCV. Для этого я сначала вычислил начальное преобразование на основе выбранных мной точек, а затем попытаюсь преобразовать углы изображения и перевести их, чтобы получить окончательное оптимальное преобразование. Я получаю преобразование успешно, но затем применяя cv2.perspectiveTransform() функция всегда подбрасывает эту ошибку:Python Open CV overviewTransform()
OpenCV Error: Assertion failed (scn + 1 == m.cols && (depth == CV_32F || depth == CV_64F)) in perspectiveTransform, file /tmp/opencv-PEaA0A/opencv-2.4.9/modules/core/src/matmul.cpp, line 1936
Оба Numpy массивы я обеспечиваю функцию имеют float64 DTYPE поэтому я полагаю, ошибка составляет от SCN + 1 == m.cols. Вот мой код:
initTransform = cv2.getPerspectiveTransform(pointsIn,pointsOut)
imgCorners = np.array([[0,0],[self.image.size/float(self.image.shape[0]),0]],dtype=np.float64)
outputCorners = cv2.perspectiveTransform(corners,initTransform)
Спасибо за вашу помощь!
Спасибо, что определенно не для меня ясно из документации и любой другой момент этого вопрос был задан, люди сосредоточились на части с плавающей запятой ошибки. – user1549912
Почему ввод 'перспективаTransform()' is 'src [None,:,:]' не просто 'src'? Каждый элемент должен быть 2D-матрицей вместо вектора? @ user1549912 – nn0p