Я с нетерпением жду возможности выполнить калибровку камеры с использованием методов DLT, RANSAC и Чжана. Ссылка SE подходит для нерегулярной сетки и работает нормально.У меня есть изображение размером 5472x3648, которое, очевидно, не на плоскости.
Этот сценарий не выполняется для моего изображения .
import cv2
import numpy as np
from matplotlib import pyplot as plt
params = cv2.SimpleBlobDetector_Params()
params.maxArea = 100000
detector = cv2.SimpleBlobDetector_create(params)
ret, corners = cv2.findCirclesGrid(self.gray, (horsq, versq), None,
flags=cv2.CALIB_CB_ASYMMETRIC_GRID, blobDetector=detector)
filename = 'data/IMG_5455.jpg'
img = cv2.imread(filename)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
plt.imshow(gray, cmap="gray")
plt.axis("off")
plt.show()
#ret, corners = cv2.findCirclesGrid(gray, (5, 5), None,flags=cv2.CALIB_CB_ASYMMETRIC_GRID+cv2.CALIB_CB_CLUSTERING)
ret, corners = cv2.findCirclesGrid(gray, (5, 5), None,flags=cv2.CALIB_CB_ASYMMETRIC_GRID+cv2.CALIB_CB_CLUSTERING,blobDetector=detector)
corners=corners.reshape(-1,2)
print (corners.shape)
print (corners[0])
Я получаю ошибку
AttributeError: у объекта 'NoneType' нет атрибута 'reshape'