findCirclesGrid () для неправильного шаблона - PullRequest
0 голосов
/ 28 января 2019

Я с нетерпением жду возможности выполнить калибровку камеры с использованием методов 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'

...