Экстремальный питон нуб здесь.Я пытаюсь откалибровать камеру на моем Raspberry Pi, чтобы исправить искажения.Я успешно сгенерировал матрицу камеры и коэффициенты искажения, но теперь у меня возникают проблемы с их использованием для генерации неискаженных изображений.
Вот код.image0
- это картинка, которую я пытаюсь неискажать:
import numpy as np
import cv2
import os
# Define Camera Matrix
mtx = np.array([[2.19605891e+03, 0, 1.01476828e+03],
[0, 2.21128295e+03, 6.35922558e+02],
[0, 0, 1]])
# Define distortion coefficients
dist = np.array([-1.10335088e-01, 8.29479393, 9.69372290e-04,
-3.88984964e-03, -8.36301163e+01])
# Getting the new optimal camera matrix
img = cv2.imread('image0.jpg')
h, w = img.shape[:2]
newcameramtx, roi = cv2.getOptimalNewCameraMatrix(mtx,dist,(w,h),1,
(w,h))
# Checking to make sure the new camera materix was properly generated
print(newcameramtx)
# Undistorting
dst = cv2.undistort(img, mtx, dist, None, newcameramtx)
# Cropping the image
x,y,w,h = roi
dst = dst[y:+y+h, x:x+w]
cv2.imwrite('calibresult.png',dst)
Код не дает мне никаких ошибок, но всякий раз, когда я пытаюсь открыть предположительно неискаженное изображение, он говорит мне: Image file '/home/pi/calibresult.png' contains no data
.
Я не знаю, почему изображение не генерируется должным образом.